mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
229d192b2a
Add retry link for Danger checks CI job File dangerfile.js in .gitlab directory Add notes about future development Add record to CODEOWNERS
187 lines
6.1 KiB
YAML
187 lines
6.1 KiB
YAML
.pre_check_template:
|
|
stage: pre_check
|
|
image: $ESP_ENV_IMAGE
|
|
tags:
|
|
- host_test
|
|
dependencies: []
|
|
|
|
.check_pre_commit_template:
|
|
extends:
|
|
- .pre_check_template
|
|
- .before_script_minimal
|
|
image: $PRE_COMMIT_IMAGE
|
|
|
|
check_pre_commit_master_release:
|
|
extends:
|
|
- .check_pre_commit_template
|
|
- .rules:protected
|
|
script:
|
|
- git diff-tree --no-commit-id --name-only -r $PIPELINE_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_MR_style_dangerjs:
|
|
extends:
|
|
- .pre_check_template
|
|
image: node:14.18.0-alpine3.14
|
|
variables:
|
|
DANGER_GITLAB_API_TOKEN: ${ESPCI_TOKEN}
|
|
DANGER_GITLAB_HOST: ${GITLAB_HTTP_SERVER}
|
|
DANGER_GITLAB_API_BASE_URL: ${GITLAB_HTTP_SERVER}/api/v4
|
|
before_script:
|
|
- echo "Skip all before scripts"
|
|
script:
|
|
- set +e
|
|
- hash danger 2>/dev/null && echo "use cache" || yarn global add danger@11.2.3 --silent --skip-integrity-check --no-progress --cache-folder .yarn --global-folder .yarn-cache
|
|
- set -e
|
|
- danger ci --dangerfile=".gitlab/dangerfile.js" --failOnErrors -v
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
|
|
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_template
|
|
- .rules:protected
|
|
script:
|
|
- export IDF_PATH=$PWD
|
|
- tools/ci/check_idf_version.sh
|
|
|
|
check_rom_api_header:
|
|
extends: .pre_check_template
|
|
script:
|
|
- tools/ci/check_examples_rom_header.sh
|
|
- tools/ci/check_api_violation.sh
|
|
|
|
test_check_kconfigs:
|
|
extends: .pre_check_template
|
|
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_blobs:
|
|
extends: .pre_check_template
|
|
variables:
|
|
SUBMODULES_TO_FETCH: "components/esp_wifi/lib;components/esp_phy/lib"
|
|
script:
|
|
# Check if Wi-Fi library header files match between IDF and the version used when compiling the libraries
|
|
- 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
|
|
- 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
|
|
|
|
check_fuzzer_compilation:
|
|
extends: .pre_check_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
|
|
|
|
check_public_headers:
|
|
extends:
|
|
- .pre_check_template
|
|
- .rules:build
|
|
script:
|
|
- IDF_TARGET=esp32 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
|
|
- IDF_TARGET=esp32s2 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s2-elf-
|
|
- IDF_TARGET=esp32s3 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s3-elf-
|
|
- IDF_TARGET=esp32c3 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
|
|
- IDF_TARGET=esp32c2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
|
|
- IDF_TARGET=esp32c6 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
|
|
- IDF_TARGET=esp32h2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
|
|
|
|
check_chip_support_components:
|
|
extends:
|
|
- .pre_check_template
|
|
- .rules:build
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- esp_hw_support_part.h
|
|
- bootloader_support_part.h
|
|
expire_in: 1 week
|
|
script:
|
|
- python tools/ci/check_soc_headers_leak.py
|
|
- find ${IDF_PATH}/components/soc/*/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
|
|
- tools/ci/check_esp_memory_utils_headers.sh
|
|
|
|
check_esp_err_to_name:
|
|
extends:
|
|
- .pre_check_template
|
|
- .rules: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; }
|
|
|
|
check_esp_system:
|
|
extends:
|
|
- .pre_check_template
|
|
- .rules:build
|
|
script:
|
|
- python components/esp_system/check_system_init_priorities.py
|
|
|
|
# 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_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_artifacts_expire_time:
|
|
extends: .pre_check_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_template
|
|
script:
|
|
- git status
|
|
- git log -n10 --oneline ${PIPELINE_COMMIT_SHA}
|
|
# commit start with "WIP: " need to be squashed before merge
|
|
- 'git log --pretty=%s origin/master..${PIPELINE_COMMIT_SHA} -- | grep -i "^WIP:" && exit 1 || exit 0'
|
|
|
|
check_test_scripts_build_test_rules:
|
|
extends:
|
|
- .pre_check_template
|
|
- .before_script_build_jobs
|
|
script:
|
|
# required pytest related packages
|
|
- run_cmd bash install.sh --enable-pytest
|
|
- python tools/ci/check_build_test_rules.py check-test-scripts examples/ tools/test_apps components
|
|
|
|
check_configure_ci_environment_parsing:
|
|
extends:
|
|
- .pre_check_template
|
|
- .before_script_build_jobs
|
|
script:
|
|
- cd tools/ci
|
|
- python -m unittest ci_build_apps.py
|