| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- .pre_check_base_template:
- stage: pre_check
- image: $ESP_ENV_IMAGE
- tags:
- - host_test
- dependencies: []
- .pre_check_job_template:
- extends:
- - .pre_check_base_template
- - .before_script_no_sync_submodule
- .check_pre_commit_template:
- extends: .pre_check_job_template
- 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
- script:
- - git diff-tree --no-commit-id --name-only -r $CI_COMMIT_SHA | xargs pre-commit run --files
- check_pre_commit_MR:
- extends:
- - .check_pre_commit_template
- - .rules:dev
- script:
- - python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files
- 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.
- extends:
- - .pre_check_job_template
- - .rules:protected
- script:
- - export IDF_PATH=$PWD
- - tools/ci/check_idf_version.sh
- check_examples_cmake_make:
- extends: .pre_check_job_template
- script:
- - python ${IDF_PATH}/tools/ci/check_examples_cmake_make.py
- check_rom_api_header:
- extends: .pre_check_job_template
- script:
- - tools/ci/check_examples_rom_header.sh
- - tools/ci/check_api_violation.sh
- check_python_style:
- extends:
- - .pre_check_base_template
- - .rules:patterns:python-files
- variables:
- PYTHON_VER: 3.6.13
- artifacts:
- when: on_failure
- paths:
- - flake8_output.txt
- expire_in: 1 week
- script:
- - python -m flake8 --config=$IDF_PATH/.flake8 --output-file=flake8_output.txt --tee --benchmark $IDF_PATH
- test_check_kconfigs:
- extends: .pre_check_job_template
- variables:
- PYTHON_VER: 3.6.13
- 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:
- - python ${IDF_PATH}/tools/ci/test_check_kconfigs.py
- check_wifi_lib_md5:
- extends: .pre_check_base_template
- tags:
- - build
- variables:
- SUBMODULES_TO_FETCH: "components/esp_wifi/lib"
- script:
- - IDF_TARGET=esp32 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- - IDF_TARGET=esp32s2 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh
- check_fuzzer_compilation:
- extends: .pre_check_base_template
- image: $AFL_FUZZER_TEST_IMAGE
- 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
- check_public_headers:
- extends:
- - .pre_check_base_template
- - .rules:build
- tags:
- - build
- script:
- - python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
- check_soc_struct_headers:
- extends:
- - .pre_check_base_template
- - .rules:build
- tags:
- - build
- script:
- - find ${IDF_PATH}/components/soc/*/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- 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/
- - ./gen_esp_err_to_name.py
- - 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; }
- scan_tests:
- extends:
- - .pre_check_base_template
- - .rules:build:target_test
- image: $CI_DOCKER_REGISTRY/ubuntu-test-env$BOT_DOCKER_IMAGE_TAG
- tags:
- - assign_test
- artifacts:
- paths:
- - $EXAMPLE_TEST_OUTPUT_DIR
- - $TEST_APPS_OUTPUT_DIR
- - $COMPONENT_UT_OUTPUT_DIR
- 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
- COMPONENT_UT_OUTPUT_DIR: ${CI_PROJECT_DIR}/component_ut/test_configs
- CI_SCAN_TESTS_PY: ${CI_PROJECT_DIR}/tools/ci/python_packages/ttfw_idf/CIScanTests.py
- script:
- - set_component_ut_vars
- - run_cmd python $CI_SCAN_TESTS_PY example_test $EXAMPLE_TEST_DIR -b make --exclude examples/build_system/idf_as_lib -c $CI_TARGET_TEST_CONFIG_FILE -o $EXAMPLE_TEST_OUTPUT_DIR
- - 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
- - run_cmd python $CI_SCAN_TESTS_PY test_apps $TEST_APPS_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_APPS_OUTPUT_DIR
- - 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
- # 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:
- extends:
- - .pre_check_job_template
- - .rules:tag:release
- script:
- - (git cat-file -t $CI_COMMIT_REF_NAME | grep tag) || (echo "ESP-IDF versions must be annotated tags." && exit 1)
- check_ut_cmake_make:
- extends: .pre_check_job_template
- tags:
- - build
- script:
- - tools/ci/check_ut_cmake_make.sh
- 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
- - git log -n10 --oneline
- # commit start with "WIP: " need to be squashed before merge
- - 'git log --pretty=%s master.. -- | grep "^WIP: " && exit 1 || exit 0'
|