Files
esp-matter/.gitlab-ci.yml
T
2022-05-28 07:39:41 +08:00

199 lines
6.4 KiB
YAML

stages:
- build
- docs
variables:
IDF_PATH: "$CI_PROJECT_DIR/esp-idf"
GIT_STRATEGY: fetch
GIT_SUBMODULE_STRATEGY: none
.chip_submodule_update: &chip_submodule_update
- git submodule sync --recursive
- git submodule update --recursive --init --reference /local_references/github/
.setup_idf: &setup_idf
# - cd $REPOS_PATH # IDF_PATH is set to something else already?
# using release/v4.4 branch of espressif/esp-idf github repo
- git clone --recursive --single-branch -b v4.4.1 --reference-if-able /local_references/github/ https://github.com/espressif/esp-idf.git
- cd esp-idf
- ./install.sh
- . export.sh
.setup_idf_v5_0: &setup_idf_v5_0
# - cd $REPOS_PATH # IDF_PATH is set to something else already?
# using commit 047903c612 of espressif/esp-idf github repo
# idf_v5_0 is used for bridge_zigbee_example and examples of ESP32-H2
- git clone --recursive --reference-if-able /local_references/github/ https://github.com/espressif/esp-idf.git
- cd esp-idf
- git checkout 047903c612e2c7212693c0861966bf7c83430ebf
- git submodule update --init --recursive
- ./install.sh
- . ./export.sh
.setup_matter: &setup_matter
- cd $ESP_MATTER_PATH
- source connectedhomeip/connectedhomeip/scripts/bootstrap.sh
- . export.sh
.build_matter_examples: &build_matter_examples
- export MATTER_EXAMPLES_PATH=$ESP_MATTER_PATH/connectedhomeip/connectedhomeip/examples
- cd $MATTER_EXAMPLES_PATH/all-clusters-app/esp32
- idf.py build
- cd $MATTER_EXAMPLES_PATH/temperature-measurement-app/esp32
- idf.py build
- cd $MATTER_EXAMPLES_PATH/lock-app/esp32
- idf.py build
- cd $MATTER_EXAMPLES_PATH/pigweed-app/esp32
- idf.py build
- cd $MATTER_EXAMPLES_PATH/persistent-storage/esp32
- idf.py build
.build_examples: &build_examples
- cd $ESP_MATTER_PATH/examples/zap_light
- idf.py set-target esp32
- idf.py build
- cd $ESP_MATTER_PATH/examples/switch
- idf.py set-target esp32
- idf.py build
- cd $ESP_MATTER_PATH/examples/light
- idf.py set-target esp32
- idf.py build
- idf.py set-target esp32c3
- idf.py build
- cd $REPOS_PATH
- git clone --recursive --single-branch -b master --reference-if-able /local_references/github/ https://github.com/espressif/esp-rainmaker.git
- export ESP_RMAKER_PATH=$PWD/esp-rainmaker
- cd $ESP_MATTER_PATH/examples/rainmaker_light
- idf.py set-target esp32
- idf.py build
.build_external_platform_example: &build_external_platform_example
- rm -rf $ESP_MATTER_PATH/../platform
- mkdir $ESP_MATTER_PATH/../platform
- cp -r $ESP_MATTER_PATH/connectedhomeip/connectedhomeip/src/platform/ESP32 $ESP_MATTER_PATH/../platform/ESP32_custom
- cp $ESP_MATTER_PATH/docs/custom_platform_guide/BUILD.gn $ESP_MATTER_PATH/../platform/ESP32_custom
- cd $ESP_MATTER_PATH/examples/light
- cp sdkconfig.defaults sdkconfig.defaults.backup
- cp sdkconfig.defaults.ext_plat_ci sdkconfig.defaults
- idf.py set-target esp32
- idf.py build
- cp sdkconfig.defaults.backup sdkconfig.defaults
.build_examples_idf_v5_0: &build_examples_idf_v5_0
# pyparsing in python_env created by matter is version 2.4.0 IDF v5.0 requires 3.0.8
- pip install pyparsing==3.0.8
- cd $ESP_MATTER_PATH/examples/zap_light
- idf.py --preview set-target esp32h2
- idf.py build
- cd $ESP_MATTER_PATH/examples/switch
- idf.py --preview set-target esp32h2
- idf.py build
- cd $ESP_MATTER_PATH/examples/light
- idf.py --preview set-target esp32h2
- idf.py build
- cd $ESP_MATTER_PATH/examples/bridge_zigbee
- idf.py set-target esp32
- idf.py build
build_esp_matter_examples:
stage: build
image: $CI_DOCKER_REGISTRY/esp32-ci-env:matter
tags:
- matter_build
script:
- export ESP_MATTER_PATH=$PWD
- mkdir repos
- export REPOS_PATH=$PWD/repos
- *chip_submodule_update
- *setup_idf
- *setup_matter
- *build_examples
- *build_external_platform_example
build_esp_matter_examples_idf_v5_0:
stage: build
image: $CI_DOCKER_REGISTRY/esp32-ci-env:matter
tags:
- matter_build
script:
- export ESP_MATTER_PATH=$PWD
- mkdir repos
- export REPOS_PATH=$PWD/repos
- *chip_submodule_update
- *setup_idf_v5_0
- *setup_matter
- *build_examples_idf_v5_0
build_upstream_examples:
stage: build
image: $CI_DOCKER_REGISTRY/esp32-ci-env:matter
tags:
- matter_build
when: manual
script:
- export ESP_MATTER_PATH=$PWD
- mkdir repos
- export REPOS_PATH=$PWD/repos
- *chip_submodule_update
- *setup_idf
- *setup_matter
- *build_matter_examples
build_docs:
stage: build
image: $CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v4
tags:
- matter_build
artifacts:
when: always
paths:
- docs/_build/*/*/*.txt
- docs/_build/*/*/html/*
expire_in: 1 days
script:
- cd docs
- pip install -r requirements.txt
- build-docs -t esp32c3 esp32 -l en
.deploy_docs_template:
stage: docs
image: $CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v4
tags:
- docs
needs:
- build_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
when: manual
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-matter"
deploy_docs_production:
extends:
- .deploy_docs_template
when: manual
variables:
TYPE: "preview"
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-matter"