mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
141 lines
4.1 KiB
YAML
141 lines
4.1 KiB
YAML
|
|
# 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
|
|
|