mirror of
https://github.com/espressif/esp-sr.git
synced 2025-09-15 15:28:44 +08:00
132 lines
3.5 KiB
YAML
132 lines
3.5 KiB
YAML
stages:
|
|
- build
|
|
- deploy_docs
|
|
- deploy
|
|
|
|
|
|
|
|
variables:
|
|
# Versioned esp-idf-doc env image to use for all document building jobs
|
|
ESP_DOCS_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env-v5.0"
|
|
ESP_SR_PATH: "$CI_PROJECT_DIR"
|
|
IDF_PATH: $CI_PROJECT_DIR/esp-idf
|
|
IDF_REPO: ${GITLAB_SSH_SERVER}/espressif/esp-idf.git
|
|
|
|
|
|
.setup_idf_ci_env: &setup_idf_ci_env
|
|
- source esp-idf/tools/ci/utils.sh
|
|
- source esp-idf/tools/ci/configure_ci_environment.sh
|
|
- esp-idf/tools/idf_tools.py install
|
|
- esp-idf/tools/idf_tools.py export
|
|
|
|
.build_template:
|
|
stage: build
|
|
image: $ESP_DOCS_ENV_IMAGE
|
|
|
|
build_esp_sr_html:
|
|
extends:
|
|
- .build_template
|
|
variables:
|
|
DOCS_DIR: $CI_PROJECT_DIR/docs
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- $DOCS_DIR/_build/*/*/html/*
|
|
- $DOCS_DIR/_build/*/*/*.txt
|
|
expire_in: 4 days
|
|
script:
|
|
- cd $DOCS_DIR
|
|
- ./check_lang_folder_sync.sh
|
|
- build-docs --skip-reqs-check -l $DOCLANG -t $DOCTGT
|
|
- echo "ESP-SR documentation preview available at $CI_JOB_URL/artifacts/file/docs/_build/$DOCLANG/$DOCTGT/html/index.html"
|
|
parallel:
|
|
matrix:
|
|
- DOCLANG: ["en", "zh_CN"]
|
|
DOCTGT: ["esp32", "esp32s3"]
|
|
|
|
build_esp_sr_pdf:
|
|
extends:
|
|
- .build_template
|
|
variables:
|
|
DOCS_DIR: $CI_PROJECT_DIR/docs
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- $DOCS_DIR/_build/*/*/latex/*
|
|
- $DOCS_DIR/_build/*/*/*.txt
|
|
expire_in: 4 days
|
|
script:
|
|
- cd $DOCS_DIR
|
|
- ./check_lang_folder_sync.sh
|
|
- pip install -r requirements.txt
|
|
- build-docs --skip-reqs-check -bs latex -l $DOCLANG -t $DOCTGT
|
|
parallel:
|
|
matrix:
|
|
- DOCLANG: ["en", "zh_CN"]
|
|
DOCTGT: ["esp32", "esp32s3"]
|
|
|
|
|
|
.deploy_docs_template:
|
|
stage: deploy_docs
|
|
image: $ESP_DOCS_ENV_IMAGE
|
|
tags:
|
|
- deploy_docs
|
|
needs:
|
|
- build_esp_sr_html
|
|
- build_esp_sr_pdf
|
|
script:
|
|
- source ${CI_PROJECT_DIR}/ci/utils.sh
|
|
- add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
|
|
- export GIT_VER=$(git describe --always)
|
|
- pip install -r ${CI_PROJECT_DIR}/docs/requirements.txt
|
|
- deploy-docs
|
|
|
|
deploy_docs_preview:
|
|
extends:
|
|
- .deploy_docs_template
|
|
except:
|
|
refs:
|
|
- master
|
|
variables:
|
|
TYPE: "preview"
|
|
DOCS_BUILD_DIR: "${CI_PROJECT_DIR}/docs/_build/"
|
|
DOCS_DEPLOY_PRIVATEKEY: "$DOCS_PREVIEW_DEPLOY_KEY"
|
|
DOCS_DEPLOY_SERVER: "$DOCS_PREVIEW_SERVER"
|
|
DOCS_DEPLOY_SERVER_USER: "$DOCS_PREVIEW_SERVER_USER"
|
|
DOCS_DEPLOY_PATH: "$DOCS_PREVIEW_PATH"
|
|
DOCS_DEPLOY_URL_BASE: "https://$DOCS_PREVIEW_SERVER_URL/docs/esp-sr"
|
|
|
|
deploy_docs_production:
|
|
extends:
|
|
- .deploy_docs_template
|
|
only:
|
|
- master
|
|
variables:
|
|
TYPE: "production"
|
|
DOCS_BUILD_DIR: "${CI_PROJECT_DIR}/docs/_build/"
|
|
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-sr"
|
|
|
|
push_to_github:
|
|
stage: deploy
|
|
image: $CI_DOCKER_REGISTRY/esp-env-v4.4:1
|
|
tags:
|
|
- deploy
|
|
when: on_success
|
|
only:
|
|
- master
|
|
- /^release\/v/
|
|
script:
|
|
- mkdir -p ~/.ssh
|
|
- chmod 700 ~/.ssh
|
|
- echo -n $GH_PUSH_KEY > ~/.ssh/id_rsa_base64
|
|
- base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
|
|
- chmod 600 ~/.ssh/id_rsa
|
|
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
|
|
- git remote remove github &>/dev/null || true
|
|
- git remote add github git@github.com:espressif/esp-sr.git
|
|
- git push github "${CI_COMMIT_SHA}:refs/heads/${CI_COMMIT_REF_NAME}"
|