stages: - build 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_bridge_zigbee_app: &build_bridge_zigbee_app - cd $ESP_MATTER_PATH/examples/bridge_zigbee # 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 - 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_bridge_zigbee_app 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