| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- # stage: pre_check
- check_readme_links:
- extends:
- - .pre_check_job_template
- - .rules:build:docs
- tags: ["build", "amd64", "internet"]
- allow_failure: true
- script:
- - python ${IDF_PATH}/tools/ci/check_readme_links.py
- check_docs_lang_sync:
- extends:
- - .pre_check_job_template
- - .rules:build:docs
- script:
- - cd docs
- - ./check_lang_folder_sync.sh
- .build_docs_template:
- image: $ESP_IDF_DOC_ENV_IMAGE
- tags:
- - build_docs
- dependencies: []
- script:
- - cd docs
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 pip install -r requirements.txt
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./build_docs.py -bs $DOC_BUILDERS -l $DOCLANG -t $DOCTGT build
- parallel:
- matrix:
- - DOCLANG: ["en", "zh_CN"]
- DOCTGT: ["esp32", "esp32s2", "esp32c3"]
- check_docs_gh_links:
- extends:
- - .pre_check_job_template
- - .build_docs_template
- - .rules:build:docs
- script:
- - cd docs
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 pip install -r requirements.txt
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./build_docs.py gh-linkcheck
- # stage: build_doc
- # Add this stage to let the build_docs job run in parallel with build
- .build_docs_build_stage_template:
- extends:
- - .build_docs_template
- - .rules:build:docs
- stage: build_doc
- needs:
- - job: check_docs_lang_sync
- artifacts: false
- - job: check_docs_gh_links
- artifacts: false
- build_docs_html:
- extends:
- - .build_docs_build_stage_template
- artifacts:
- when: always
- paths:
- - docs/_build/*/*/*.txt
- - docs/_build/*/*/html/*
- expire_in: 4 days
- variables:
- DOC_BUILDERS: "html"
- build_docs_pdf:
- extends:
- - .build_docs_build_stage_template
- - .rules:build:docs:label-only
- artifacts:
- when: always
- paths:
- - docs/_build/*/*/latex/*
- expire_in: 4 days
- variables:
- DOC_BUILDERS: "latex"
- .deploy_docs_template:
- extends:
- - .before_script_no_sync_submodule
- image: $ESP_IDF_DOC_ENV_IMAGE
- stage: test_deploy
- tags:
- - deploy
- - shiny
- variables:
- DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
- PYTHONUNBUFFERED: 1
- dependencies: []
- script:
- - add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
- - export GIT_VER=$(git describe --always)
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ${IDF_PATH}/tools/ci/deploy_docs.py
- # stage: test_deploy
- deploy_docs_preview:
- extends:
- - .deploy_docs_template
- - .rules:build:docs:label-only-preview
- dependencies: # set dependencies to null to avoid missing artifacts issue
- needs:
- - build_docs_html
- - build_docs_pdf
- variables:
- TYPE: "preview"
- # older branches use DOCS_DEPLOY_KEY, DOCS_SERVER, DOCS_SERVER_USER, DOCS_PATH for preview server so we keep these names for 'preview'
- DOCS_DEPLOY_PRIVATEKEY: "$DOCS_DEPLOY_KEY"
- DOCS_DEPLOY_SERVER: "$DOCS_SERVER"
- DOCS_DEPLOY_SERVER_USER: "$DOCS_SERVER_USER"
- DOCS_DEPLOY_PATH: "$DOCS_PATH"
- DOCS_DEPLOY_URL_BASE: "https://$CI_DOCKER_REGISTRY/docs/esp-idf"
- # stage: post_deploy
- deploy_docs_production:
- # The DOCS_PROD_* variables used by this job are "Protected" so these branches must all be marked "Protected" in Gitlab settings
- extends:
- - .deploy_docs_template
- - .rules:build:docs-production
- stage: post_deploy
- dependencies: # set dependencies to null to avoid missing artifacts issue
- needs: # ensure runs after push_to_github succeeded
- - build_docs_html
- - build_docs_pdf
- - job: push_to_github
- artifacts: false
- variables:
- TYPE: "preview"
- DOCS_DEPLOY_PRIVATEKEY: "$DOCS_PROD_DEPLOY_KEY"
- DOCS_DEPLOY_SERVER: "$DOCS_PROD_SERVER"
- DOCS_DEPLOY_SERVER_USER: "$DOCS_PROD_SERVER_USER"
- DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH"
- DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf"
- check_doc_links:
- extends:
- - .build_docs_template
- - .rules:protected
- stage: post_deploy
- tags: ["build", "amd64", "internet"]
- artifacts:
- when: always
- paths:
- - docs/_build/*/*/*.txt
- - docs/_build/*/*/linkcheck/*.txt
- expire_in: 1 week
- allow_failure: true
- script:
- - cd docs
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 pip install -r requirements.txt
- # At the moment this check will always fail due to multiple known limitations, ignore result
- - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ./build_docs.py -l $DOCLANG -t $DOCTGT linkcheck || { echo "THERE ARE ISSUES DUE TO KNOWN LIMITATIONS, PLEASE FIX THEM. Nowadays we're ignored them to pass pipeline."; true; }
|