mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
162 lines
4.4 KiB
YAML
162 lines
4.4 KiB
YAML
|
stages:
|
||
|
- build
|
||
|
- deploy
|
||
|
|
||
|
variables:
|
||
|
# System environment
|
||
|
ESP_DOCS_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env-v5.0:2-2"
|
||
|
ESP_DOCS_PATH: "$CI_PROJECT_DIR"
|
||
|
|
||
|
# GitLab-CI environment
|
||
|
GET_SOURCES_ATTEMPTS: "10"
|
||
|
ARTIFACT_DOWNLOAD_ATTEMPTS: "10"
|
||
|
GIT_SUBMODULE_STRATEGY: none
|
||
|
|
||
|
.setup_idf_tools: &setup_idf_tools |
|
||
|
tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)" || exit 1
|
||
|
|
||
|
.add_gh_key_remote: &add_gh_key_remote |
|
||
|
command -v ssh-agent >/dev/null || exit 1
|
||
|
eval $(ssh-agent -s)
|
||
|
printf '%s\n' "${GH_PUSH_KEY}" | tr -d '\r' | ssh-add - > /dev/null
|
||
|
mkdir -p ~/.ssh && chmod 700 ~/.ssh
|
||
|
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config || ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
|
||
|
git remote remove github || true
|
||
|
git remote add github ${GH_PUSH_REPO}
|
||
|
|
||
|
after_script:
|
||
|
# Just for cleaning space, no other causes
|
||
|
- git clean -ffdx
|
||
|
|
||
|
|
||
|
# This template gets expanded multiple times, once for every IDF version.
|
||
|
# IDF version is specified by setting the espressif/idf image tag.
|
||
|
#
|
||
|
# EXAMPLE_TARGETS sets the list of IDF_TARGET values to build examples for.
|
||
|
# It should be equal to the list of targets supported by the specific IDF version.
|
||
|
#
|
||
|
# TEST_TARGETS sets the list of IDF_TARGET values to build the test_app for.
|
||
|
# It should contain only the targets with optimized assembly implementations.
|
||
|
#
|
||
|
.build_template:
|
||
|
stage: build
|
||
|
tags:
|
||
|
- build
|
||
|
- internet
|
||
|
script:
|
||
|
- pip install idf-component-manager --upgrade
|
||
|
- ./build_all.sh
|
||
|
variables:
|
||
|
EXAMPLE_TARGETS: "esp32"
|
||
|
TEST_TARGETS: "esp32"
|
||
|
|
||
|
build_idf_v4.1:
|
||
|
extends: .build_template
|
||
|
image: espressif/idf:release-v4.1
|
||
|
|
||
|
build_idf_v4.2:
|
||
|
extends: .build_template
|
||
|
image: espressif/idf:release-v4.2
|
||
|
variables:
|
||
|
EXAMPLE_TARGETS: "esp32 esp32s2"
|
||
|
|
||
|
build_idf_v4.3:
|
||
|
extends: .build_template
|
||
|
image: espressif/idf:release-v4.3
|
||
|
variables:
|
||
|
EXAMPLE_TARGETS: "esp32 esp32s2 esp32c3"
|
||
|
|
||
|
build_idf_v4.4:
|
||
|
extends: .build_template
|
||
|
image: espressif/idf:release-v4.4
|
||
|
variables:
|
||
|
EXAMPLE_TARGETS: "esp32 esp32s2 esp32s3 esp32c3"
|
||
|
TEST_TARGETS: "esp32 esp32s3"
|
||
|
|
||
|
build_idf_latest:
|
||
|
extends: .build_template
|
||
|
image: espressif/idf:latest
|
||
|
variables:
|
||
|
EXAMPLE_TARGETS: "esp32 esp32s2 esp32s3 esp32c3"
|
||
|
TEST_TARGETS: "esp32 esp32s3"
|
||
|
# GNU Make based build system is not supported starting from IDF v5.0
|
||
|
SKIP_GNU_MAKE_BUILD: 1
|
||
|
|
||
|
build_docs:
|
||
|
stage: build
|
||
|
image: $ESP_DOCS_ENV_IMAGE
|
||
|
tags:
|
||
|
- build_docs
|
||
|
artifacts:
|
||
|
when: always
|
||
|
paths:
|
||
|
- docs/_build/*/*/*.txt
|
||
|
- docs/_build/*/*/html/*
|
||
|
expire_in: 4 days
|
||
|
# No cleaning when the artifacts
|
||
|
after_script: []
|
||
|
script:
|
||
|
- cd docs
|
||
|
- pip install -r requirements.txt
|
||
|
- build-docs -l en -t esp32
|
||
|
|
||
|
.deploy_docs_template:
|
||
|
stage: deploy
|
||
|
image: $ESP_DOCS_ENV_IMAGE
|
||
|
tags:
|
||
|
- deploy_docs
|
||
|
needs:
|
||
|
- build_docs
|
||
|
only:
|
||
|
changes:
|
||
|
- "docs/**/*"
|
||
|
script:
|
||
|
- source ${CI_PROJECT_DIR}/docs/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_DEPLOY_KEY"
|
||
|
DOCS_DEPLOY_SERVER: "$DOCS_SERVER"
|
||
|
DOCS_DEPLOY_SERVER_USER: "$DOCS_SERVER_USER"
|
||
|
DOCS_DEPLOY_PATH: "$DOCS_PATH"
|
||
|
DOCS_DEPLOY_URL_BASE: "https://$DOCS_PREVIEW_SERVER_URL/docs/esp-modbus"
|
||
|
|
||
|
deploy_docs_production:
|
||
|
extends:
|
||
|
- .deploy_docs_template
|
||
|
only:
|
||
|
refs:
|
||
|
- 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-modbus"
|
||
|
|
||
|
upload_to_component_manager:
|
||
|
stage: deploy
|
||
|
image: python:3.10-alpine
|
||
|
tags:
|
||
|
- deploy
|
||
|
rules:
|
||
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
||
|
- if: '$FORCE_PUSH_COMPONENT == "1"'
|
||
|
script:
|
||
|
- pip install idf-component-manager
|
||
|
- export IDF_COMPONENT_API_TOKEN=${ESP_MODBUS_API_KEY}
|
||
|
- python -m idf_component_manager upload-component --allow-existing --name=esp-modbus --namespace=espressif
|