# copy from .gitlab-ci.yml as anchor is not global .show_submodule_urls: &show_submodule_urls | git config --get-regexp '^submodule\..*\.url$' || true check_line_endings: extends: .check_job_template script: - tools/ci/check-line-endings.sh ${IDF_PATH} check_commit_msg: extends: .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' check_permissions: extends: .check_job_template script: - tools/ci/check-executable.sh check_version: extends: .check_job_template # 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. only: - master - /^release\/v/ - /^v\d+\.\d+(\.\d+)?($|-)/ script: - export IDF_PATH=$PWD - tools/ci/check_idf_version.sh check_examples_cmake_make: extends: .check_job_template_with_filter except: - master - /^release\/v/ - /^v\d+\.\d+(\.\d+)?($|-)/ script: - tools/ci/check_examples_cmake_make.sh check_python_style: extends: .check_job_template_with_filter artifacts: when: on_failure paths: - flake8_output.txt expire_in: 1 week script: # run it only under Python 3 (it is very slow under Python 2) - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.4.8 python -m flake8 --config=$IDF_PATH/.flake8 --output-file=flake8_output.txt --tee --benchmark $IDF_PATH check_kconfigs: extends: .check_job_template_with_filter 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: - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh ${IDF_PATH}/tools/test_check_kconfigs.py - ${IDF_PATH}/tools/check_kconfigs.py check_deprecated_kconfig_options: extends: .check_job_template_with_filter script: - ${IDF_PATH}/tools/ci/check_deprecated_kconfigs.py check_ut_cmake_make: extends: .check_job_template_with_filter stage: check image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG tags: - build except: - master - /^release\/v/ - /^v\d+\.\d+(\.\d+)?($|-)/ dependencies: [] script: - tools/ci/check_ut_cmake_make.sh check_submodule_sync: extends: .check_job_template tags: - github_sync retry: 2 variables: GIT_STRATEGY: clone SUBMODULES_TO_FETCH: "none" PUBLIC_IDF_URL: "https://github.com/espressif/esp-idf.git" before_script: [] after_script: [] script: - git submodule deinit --force . # setting the default remote URL to the public one, to resolve relative location URLs - git config remote.origin.url ${PUBLIC_IDF_URL} # check if all submodules are correctly synced to public repostory - git submodule init - *show_submodule_urls - git submodule update --recursive - echo "IDF was cloned from ${PUBLIC_IDF_URL} completely" check_artifacts_expire_time: extends: .check_job_template script: # check if we have set expire time for all artifacts - python tools/ci/check_artifacts_expire_time.py check_pipeline_triggered_by_label: extends: .check_job_template stage: post_check only: variables: - $BOT_TRIGGER_WITH_LABEL script: # If the pipeline is triggered with label, the pipeline will only succeeded if "regular_test" label is added. # We want to make sure some jobs are always executed to detect regression. - test "$BOT_LABEL_REGULAR_TEST" = "true" || { echo "CI can only pass if 'regular_test' label is included"; exit -1; } # 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: .check_job_template only: refs: - /^v\d+\.\d+(\.\d+)?($|-)/ variables: - $BOT_TRIGGER_WITH_LABEL == null script: - (git cat-file -t $CI_COMMIT_REF_NAME | grep tag) || echo "ESP-IDF versions must be annotated tags." && exit 1