2020-09-26 23:20:53 -04:00
|
|
|
.pre_check_base_template:
|
|
|
|
stage: pre_check
|
2021-05-26 04:44:20 -04:00
|
|
|
image: $ESP_ENV_IMAGE
|
2020-09-26 23:20:53 -04:00
|
|
|
tags:
|
|
|
|
- host_test
|
|
|
|
dependencies: []
|
|
|
|
|
|
|
|
.pre_check_job_template:
|
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
2021-02-08 23:31:38 -05:00
|
|
|
- .before_script_no_sync_submodule
|
2020-09-26 23:20:53 -04:00
|
|
|
|
2020-10-21 07:30:49 -04:00
|
|
|
.check_pre_commit_template:
|
2020-09-26 23:20:53 -04:00
|
|
|
extends: .pre_check_job_template
|
2020-10-21 07:30:49 -04:00
|
|
|
image: "$CI_DOCKER_REGISTRY/esp-idf-pre-commit:1"
|
|
|
|
before_script:
|
|
|
|
- source tools/ci/utils.sh
|
|
|
|
- export PYTHONPATH="$CI_PROJECT_DIR/tools:$CI_PROJECT_DIR/tools/ci/python_packages:$PYTHONPATH"
|
|
|
|
|
|
|
|
check_pre_commit_master_release:
|
|
|
|
extends:
|
|
|
|
- .check_pre_commit_template
|
|
|
|
- .rules:protected
|
2019-11-12 02:59:11 -05:00
|
|
|
script:
|
2021-10-28 00:07:02 -04:00
|
|
|
- git diff-tree --no-commit-id --name-only -r $PIPELINE_COMMIT_SHA | xargs pre-commit run --files
|
2019-11-12 02:59:11 -05:00
|
|
|
|
2020-10-21 07:30:49 -04:00
|
|
|
check_pre_commit_MR:
|
|
|
|
extends:
|
|
|
|
- .check_pre_commit_template
|
|
|
|
- .rules:dev
|
2019-11-12 02:59:11 -05:00
|
|
|
script:
|
2021-03-01 02:20:34 -05:00
|
|
|
- python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files
|
2019-11-12 02:59:11 -05:00
|
|
|
|
|
|
|
check_version:
|
|
|
|
# Don't run this for feature/bugfix branches, so that it is possible to modify
|
|
|
|
# esp_idf_version.h in a branch before tagging the next version.
|
2020-09-26 23:20:53 -04:00
|
|
|
extends:
|
|
|
|
- .pre_check_job_template
|
2020-10-20 03:00:50 -04:00
|
|
|
- .rules:protected
|
2019-11-12 02:59:11 -05:00
|
|
|
script:
|
|
|
|
- export IDF_PATH=$PWD
|
|
|
|
- tools/ci/check_idf_version.sh
|
|
|
|
|
2020-06-19 00:00:58 -04:00
|
|
|
check_rom_api_header:
|
2021-02-08 23:31:38 -05:00
|
|
|
extends: .pre_check_job_template
|
2019-11-12 02:59:11 -05:00
|
|
|
script:
|
|
|
|
- tools/ci/check_examples_rom_header.sh
|
2021-06-15 05:11:50 -04:00
|
|
|
- tools/ci/check_api_violation.sh
|
2019-11-12 02:59:11 -05:00
|
|
|
|
|
|
|
check_python_style:
|
2020-11-30 04:40:24 -05:00
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
|
|
|
- .rules:patterns:python-files
|
2021-05-26 04:44:20 -04:00
|
|
|
variables:
|
2022-01-31 01:20:59 -05:00
|
|
|
PYTHON_VER: 3.7.10
|
2019-11-12 02:59:11 -05:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- flake8_output.txt
|
|
|
|
expire_in: 1 week
|
|
|
|
script:
|
2021-05-26 04:44:20 -04:00
|
|
|
- python -m flake8 --config=$IDF_PATH/.flake8 --output-file=flake8_output.txt --tee --benchmark $IDF_PATH
|
2019-11-12 02:59:11 -05:00
|
|
|
|
2021-02-08 23:31:38 -05:00
|
|
|
test_check_kconfigs:
|
|
|
|
extends: .pre_check_job_template
|
2021-05-26 04:44:20 -04:00
|
|
|
variables:
|
2022-01-31 01:20:59 -05:00
|
|
|
PYTHON_VER: 3.7.10
|
2019-11-12 02:59:11 -05:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- components/*/Kconfig*.new
|
|
|
|
- examples/*/*/*/Kconfig*.new
|
|
|
|
- examples/*/*/*/*/Kconfig*.new
|
|
|
|
- tools/*/Kconfig*.new
|
|
|
|
- tools/*/*/Kconfig*.new
|
|
|
|
- tools/*/*/*/Kconfig*.new
|
|
|
|
expire_in: 1 week
|
|
|
|
script:
|
2021-05-26 04:44:20 -04:00
|
|
|
- python ${IDF_PATH}/tools/ci/test_check_kconfigs.py
|
2019-11-12 02:59:11 -05:00
|
|
|
|
2022-01-03 18:18:55 -05:00
|
|
|
check_blobs:
|
2020-09-26 23:20:53 -04:00
|
|
|
extends: .pre_check_base_template
|
2019-12-10 22:40:20 -05:00
|
|
|
tags:
|
|
|
|
- build
|
|
|
|
variables:
|
2022-01-03 18:18:55 -05:00
|
|
|
SUBMODULES_TO_FETCH: "components/esp_wifi/lib;components/esp_phy/lib"
|
2019-12-10 22:40:20 -05:00
|
|
|
script:
|
2022-01-03 18:18:55 -05:00
|
|
|
# Check if Wi-Fi library header files match between IDF and the version used when compiling the libraries
|
2019-12-10 22:40:20 -05:00
|
|
|
- IDF_TARGET=esp32 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
|
2020-01-16 22:47:08 -05:00
|
|
|
- IDF_TARGET=esp32s2 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
|
2022-01-03 18:18:55 -05:00
|
|
|
- IDF_TARGET=esp32s3 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
|
|
|
|
- IDF_TARGET=esp32c3 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
|
|
|
|
# Check if Wi-Fi, PHY, BT blobs contain references to specific symbols
|
|
|
|
- bash $IDF_PATH/tools/ci/check_blobs.sh
|
2019-12-10 22:40:20 -05:00
|
|
|
|
2021-02-05 08:56:09 -05:00
|
|
|
check_fuzzer_compilation:
|
|
|
|
extends: .pre_check_base_template
|
2021-05-26 04:44:20 -04:00
|
|
|
image: $AFL_FUZZER_TEST_IMAGE
|
2021-02-05 08:56:09 -05:00
|
|
|
script:
|
|
|
|
- cd ${IDF_PATH}/components/lwip/test_afl_host
|
|
|
|
- make MODE=dhcp_server
|
|
|
|
- make MODE=dhcp_client
|
|
|
|
- make MODE=dns
|
|
|
|
- cd ${IDF_PATH}/components/mdns/test_afl_fuzz_host
|
|
|
|
- make
|
|
|
|
|
2019-12-25 15:03:41 -05:00
|
|
|
check_public_headers:
|
2020-09-26 23:20:53 -04:00
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
2021-02-08 23:31:38 -05:00
|
|
|
- .rules:build
|
2019-12-18 10:11:11 -05:00
|
|
|
tags:
|
|
|
|
- build
|
|
|
|
script:
|
2020-03-02 04:19:01 -05:00
|
|
|
- python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
|
2019-12-18 10:11:11 -05:00
|
|
|
|
2022-04-16 02:02:57 -04:00
|
|
|
check_chip_support_components:
|
2021-08-23 02:03:23 -04:00
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
|
|
|
- .rules:build
|
|
|
|
tags:
|
|
|
|
- build
|
2022-04-16 02:02:57 -04:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- esp_hw_support_part.h
|
|
|
|
- bootloader_support_part.h
|
|
|
|
expire_in: 1 week
|
2021-08-23 02:03:23 -04:00
|
|
|
script:
|
2022-01-05 02:44:02 -05:00
|
|
|
- python tools/ci/check_soc_headers_leak.py
|
2021-08-23 02:03:23 -04:00
|
|
|
- find ${IDF_PATH}/components/soc/*/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
|
2022-04-16 02:02:57 -04:00
|
|
|
- tools/ci/check_esp_memory_utils_headers.sh
|
2021-08-23 02:03:23 -04:00
|
|
|
|
2021-06-20 22:47:34 -04:00
|
|
|
check_esp_err_to_name:
|
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
|
|
|
- .rules:build
|
|
|
|
tags:
|
|
|
|
- build
|
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- components/esp_common/esp_err_to_name.c
|
|
|
|
expire_in: 1 week
|
|
|
|
script:
|
|
|
|
- cd ${IDF_PATH}/tools/
|
2021-05-26 04:44:20 -04:00
|
|
|
- ./gen_esp_err_to_name.py
|
2021-06-20 22:47:34 -04:00
|
|
|
- git diff --exit-code -- ../components/esp_common/src/esp_err_to_name.c || { echo 'Differences found. Please run gen_esp_err_to_name.py and commit the changes.'; exit 1; }
|
|
|
|
|
2021-02-08 23:31:38 -05:00
|
|
|
scan_tests:
|
|
|
|
extends:
|
|
|
|
- .pre_check_base_template
|
2022-01-28 03:09:19 -05:00
|
|
|
- .before_script_pytest
|
2021-02-22 03:53:37 -05:00
|
|
|
- .rules:build:target_test
|
2022-01-31 01:20:59 -05:00
|
|
|
image: $TARGET_TEST_ENV_IMAGE
|
2020-04-20 02:30:31 -04:00
|
|
|
tags:
|
2022-03-02 22:25:10 -05:00
|
|
|
- scan_test # since this job is used for uploading the cache, the runner tags should be unique
|
2020-04-20 02:30:31 -04:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- $EXAMPLE_TEST_OUTPUT_DIR
|
|
|
|
- $TEST_APPS_OUTPUT_DIR
|
2022-01-28 23:09:04 -05:00
|
|
|
- $COMPONENT_UT_OUTPUT_DIR
|
2022-02-09 05:00:54 -05:00
|
|
|
expire_in: 1 week
|
2022-02-25 01:31:21 -05:00
|
|
|
cache:
|
|
|
|
key: pip-cache
|
|
|
|
paths:
|
|
|
|
- .cache/pip
|
|
|
|
# pull only for most of the use cases since it's cache dir.
|
|
|
|
# Only set "pull-push" policy for "scan_test" since it would **possibly** install all pypi packages
|
|
|
|
policy: pull-push
|
2020-04-20 02:30:31 -04:00
|
|
|
variables:
|
|
|
|
EXAMPLE_TEST_DIR: ${CI_PROJECT_DIR}/examples
|
|
|
|
EXAMPLE_TEST_OUTPUT_DIR: ${CI_PROJECT_DIR}/examples/test_configs
|
|
|
|
TEST_APPS_TEST_DIR: ${CI_PROJECT_DIR}/tools/test_apps
|
|
|
|
TEST_APPS_OUTPUT_DIR: ${CI_PROJECT_DIR}/tools/test_apps/test_configs
|
2022-01-28 23:09:04 -05:00
|
|
|
COMPONENT_UT_OUTPUT_DIR: ${CI_PROJECT_DIR}/component_ut/test_configs
|
2021-02-08 23:31:38 -05:00
|
|
|
CI_SCAN_TESTS_PY: ${CI_PROJECT_DIR}/tools/ci/python_packages/ttfw_idf/CIScanTests.py
|
2021-11-18 09:28:20 -05:00
|
|
|
EXTRA_TEST_DIRS: >-
|
|
|
|
examples/bluetooth/esp_ble_mesh/ble_mesh_console
|
2021-11-30 23:06:52 -05:00
|
|
|
examples/bluetooth/hci/controller_hci_uart_esp32
|
2021-11-18 09:28:20 -05:00
|
|
|
examples/wifi/iperf
|
2022-01-29 01:38:56 -05:00
|
|
|
EXTRA_EVALUATE_ARGS: '--evaluate-parallel-count --config "sdkconfig.ci=default" --config "sdkconfig.ci.*=" --config "=default"'
|
2020-04-20 02:30:31 -04:00
|
|
|
script:
|
2022-01-29 01:38:56 -05:00
|
|
|
- run_cmd python $CI_SCAN_TESTS_PY example_test $EXAMPLE_TEST_DIR -b cmake --exclude examples/build_system/idf_as_lib -c $CI_TARGET_TEST_CONFIG_FILE -o $EXAMPLE_TEST_OUTPUT_DIR --extra_test_dirs $EXTRA_TEST_DIRS $EXTRA_EVALUATE_ARGS
|
|
|
|
- run_cmd python $CI_SCAN_TESTS_PY test_apps $TEST_APPS_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_APPS_OUTPUT_DIR $EXTRA_EVALUATE_ARGS
|
2022-01-28 23:09:04 -05:00
|
|
|
- set_component_ut_vars
|
2022-01-29 01:38:56 -05:00
|
|
|
- run_cmd python $CI_SCAN_TESTS_PY component_ut $COMPONENT_UT_DIRS --exclude $COMPONENT_UT_EXCLUDES -c $CI_TARGET_TEST_CONFIG_FILE -o $COMPONENT_UT_OUTPUT_DIR --combine-all-targets --except-targets linux $EXTRA_EVALUATE_ARGS
|
2020-06-16 07:00:27 -04:00
|
|
|
|
2020-10-06 18:54:27 -04:00
|
|
|
# For release tag pipelines only, make sure the tag was created with 'git tag -a' so it will update
|
|
|
|
# the version returned by 'git describe'
|
|
|
|
check_version_tag:
|
2020-09-26 23:20:53 -04:00
|
|
|
extends:
|
|
|
|
- .pre_check_job_template
|
2021-02-08 23:31:38 -05:00
|
|
|
- .rules:tag:release
|
2020-10-06 18:54:27 -04:00
|
|
|
script:
|
2020-11-22 18:23:24 -05:00
|
|
|
- (git cat-file -t $CI_COMMIT_REF_NAME | grep tag) || (echo "ESP-IDF versions must be annotated tags." && exit 1)
|
2021-02-01 21:53:40 -05:00
|
|
|
|
2021-02-08 23:31:38 -05:00
|
|
|
check_artifacts_expire_time:
|
|
|
|
extends: .pre_check_job_template
|
|
|
|
script:
|
|
|
|
# check if we have set expire time for all artifacts
|
|
|
|
- python tools/ci/check_artifacts_expire_time.py
|
|
|
|
|
|
|
|
check_commit_msg:
|
|
|
|
extends: .pre_check_job_template
|
|
|
|
script:
|
|
|
|
- git status
|
2021-10-28 00:07:02 -04:00
|
|
|
- git log -n10 --oneline ${PIPELINE_COMMIT_SHA}
|
2021-02-08 23:31:38 -05:00
|
|
|
# commit start with "WIP: " need to be squashed before merge
|
2021-10-28 00:07:02 -04:00
|
|
|
- 'git log --pretty=%s origin/master..${PIPELINE_COMMIT_SHA} -- | grep -i "^WIP:" && exit 1 || exit 0'
|