build_template_app:
stage: build
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build
variables:
.build_template: &build_template
stage: build
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build
variables:
.build_examples_template: &build_examples_template
<<: *build_template
artifacts:
+ when: always
paths:
- build_examples/*/*/*/build/*.bin
- build_examples/*/*/*/build/*.elf
- build_examples/*/*/*/build/*.map
- build_examples/*/*/*/build/download.config
- build_examples/*/*/*/build/bootloader/*.bin
+ - $LOG_PATH
expire_in: 1 week
variables:
IDF_CI_BUILD: "1"
+ LOG_PATH: "$CI_PROJECT_DIR/log_examples"
script:
# it's not possible to build 100% out-of-tree and have the "artifacts"
# mechanism work, but this is the next best thing
- mkdir build_examples
- cd build_examples
# build some of examples
+ - mkdir -p ${LOG_PATH}
- ${IDF_PATH}/tools/ci/build_examples.sh "${CI_JOB_NAME}"
build_examples_00:
build_docs:
stage: build
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build_docs
artifacts:
when: always
paths:
- - docs/doxygen-warning-log.txt
- - docs/sphinx-warning-log.txt
- - docs/sphinx-warning-log-sanitized.txt
- - docs/_build/html
+ # English version of documentation
+ - docs/en/doxygen-warning-log.txt
+ - docs/en/sphinx-warning-log.txt
+ - docs/en/sphinx-warning-log-sanitized.txt
+ - docs/en/_build/html
+ # Chinese version of documentation
+ - docs/zh_CN/doxygen-warning-log.txt
+ - docs/zh_CN/sphinx-warning-log.txt
+ - docs/zh_CN/sphinx-warning-log-sanitized.txt
+ - docs/zh_CN/_build/html
expire_in: 1 mos
script:
- - cd docs
- - doxygen
- # If there are Doxygen warnings, print them and bail out
- - test $(cat doxygen-warning-log.txt | wc -l) -eq 0 || ( echo "Doxygen pass had some warnings:" && cat doxygen-warning-log.txt && false )
+ - cd docs/en
- make gh-linkcheck
- make html
- - ./check_doc_warnings.sh
+ - ../check_doc_warnings.sh
+ - cd ../zh_CN
+ - make gh-linkcheck
+ - make html
+ - ../check_doc_warnings.sh
test_nvs_on_host:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- nvs_host_test
dependencies: []
test_partition_table_on_host:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build
dependencies: []
test_wl_on_host:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- wl_host_test
artifacts:
test_multi_heap_on_host:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- wl_host_test
script:
test_build_system:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build_test
dependencies: []
test_report:
stage: test_report
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- report
only:
- git push origin master
- test "${TEST_RESULT}" = "Pass" || exit 1
+test_esp_err_to_name_on_host:
+ stage: test
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
+ tags:
+ - build
+ dependencies: []
+ script:
+ - cd tools/
+ - ./gen_esp_err_to_name.py
+ - git diff --exit-code -- ../components/esp32/esp_err_to_name.c || (echo 'Differences found. Please run gen_esp_err_to_name.py and commit the changes.'; exit 1)
+
push_master_to_github:
stage: deploy
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- deploy
only:
deploy_docs:
- stage: deploy
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ stage: assign_test
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- deploy
only:
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
- export GIT_VER=$(git describe --always)
- - cd docs/_build/
+ - cd docs/en/_build/
+ - mv html $GIT_VER
+ - tar czvf $GIT_VER.tar.gz $GIT_VER
+ - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/en
+ - ssh $DOCS_SERVER -x "cd $DOCS_PATH/en && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
+ - cd ../../zh_CN/_build/
- mv html $GIT_VER
- tar czvf $GIT_VER.tar.gz $GIT_VER
- - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH
- - ssh $DOCS_SERVER -x "cd $DOCS_PATH && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
+ - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/zh_CN
+ - ssh $DOCS_SERVER -x "cd $DOCS_PATH/zh_CN && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
+ # add link to preview doc
+ - echo "[document preview][en] $CI_DOCKER_REGISTRY/docs/esp-idf/en/${GIT_VER}/index.html"
+ - echo "[document preview][zh_CN] $CI_DOCKER_REGISTRY/docs/esp-idf/zh_CN/${GIT_VER}/index.html"
check_doc_links:
stage: test
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- check_doc_links
only:
check_commit_msg:
stage: deploy
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build
except:
check_submodule_sync:
stage: deploy
- image: $CI_DOCKER_REGISTRY/esp32-ci-env
+ image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
tags:
- build
except:
- components/idf_test/*/CIConfigs
- components/idf_test/*/TC.sqlite
- $EXAMPLE_CONFIG_OUTPUT_PATH
+ - tools/unit-test-app/output
expire_in: 1 mos
before_script: *add_gitlab_key_before
script:
# first move test bins together: test_bins/CHIP_SDK/TestApp/bin_files
- mkdir -p $OUTPUT_BIN_PATH
- # copy and rename folder name to "UT_config"
- - for CONFIG in $(ls $UT_BIN_PATH); do cp -r "$UT_BIN_PATH/$CONFIG" "$OUTPUT_BIN_PATH/UT_$CONFIG"; done
- cp -r SSC/ssc_bin/* $OUTPUT_BIN_PATH
# assign example tests
- python $TEST_FW_PATH/CIAssignExampleTest.py $IDF_PATH/examples $IDF_PATH/.gitlab-ci.yml $EXAMPLE_CONFIG_OUTPUT_PATH
+ # assign unit test cases
+ - python $TEST_FW_PATH/CIAssignUnitTest.py $IDF_PATH/components/idf_test/unit_test/TestCaseAll.yml $IDF_PATH/.gitlab-ci.yml $IDF_PATH/components/idf_test/unit_test/CIConfigs
# clone test script to assign tests
- git clone $TEST_SCRIPT_REPOSITORY
- cd auto_test_script
- python $CHECKOUT_REF_SCRIPT auto_test_script
- # assign unit test cases
- - python CIAssignTestCases.py -t $IDF_PATH/components/idf_test/unit_test -c $IDF_PATH/.gitlab-ci.yml -b $IDF_PATH/test_bins
# assgin integration test cases
- python CIAssignTestCases.py -t $IDF_PATH/components/idf_test/integration_test -c $IDF_PATH/.gitlab-ci.yml -b $IDF_PATH/test_bins
# run test
- python Runner.py $TEST_CASE_PATH -c $CONFIG_FILE
+.unit_test_template: &unit_test_template
+ <<: *example_test_template
+ stage: unit_test
+ dependencies:
+ - assign_test
+ variables:
+ TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
+ TEST_CASE_PATH: "$CI_PROJECT_DIR/tools/unit-test-app"
+ CONFIG_FILE: "$CI_PROJECT_DIR/components/idf_test/unit_test/CIConfigs/$CI_JOB_NAME.yml"
+ LOG_PATH: "$CI_PROJECT_DIR/TEST_LOGS"
+
.test_template: &test_template
stage: test
when: on_success
# run test
- python CIRunner.py -l "$LOG_PATH/$CI_JOB_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH -m $MODULE_UPDATE_FILE
-# template for unit test jobs
-.unit_test_template: &unit_test_template
- <<: *test_template
- allow_failure: false
- stage: unit_test
- variables:
- LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32_IDF"
- LOG_PATH: "$CI_PROJECT_DIR/$CI_COMMIT_SHA"
- TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/unit_test"
- MODULE_UPDATE_FILE: "$CI_PROJECT_DIR/components/idf_test/ModuleDefinition.yml"
- CONFIG_FILE: "$CI_PROJECT_DIR/components/idf_test/unit_test/CIConfigs/$CI_JOB_NAME.yml"
-
nvs_compatible_test:
<<: *test_template
artifacts:
- UT_T1_1
- UT_single_core
+UT_003_09:
+ <<: *unit_test_template
+ tags:
+ - ESP32_IDF
+ - UT_T1_1
+ - UT_single_core
+
UT_004_01:
<<: *unit_test_template
tags: