2023-09-08 08:39:12 -04:00
|
|
|
# generate dynamic integration pipeline by `idf-integration-ci` project
|
|
|
|
|
|
|
|
.patterns-integration_test: &patterns-integration_test
|
|
|
|
# add all possible patterns to make sure `gen_integration_pipeline` can be triggered.
|
|
|
|
# fine-grained control will be done while generating the pipeline
|
|
|
|
# find `patterns` in `idf-integration-ci` project
|
|
|
|
- "components/**/*"
|
|
|
|
- "tools/**/*"
|
|
|
|
- ".gitlab-ci.yml"
|
|
|
|
- ".gitlab/ci/common.yml"
|
2023-11-03 06:13:34 -04:00
|
|
|
- ".gitlab/ci/integration_test.yml"
|
2023-09-08 08:39:12 -04:00
|
|
|
- ".gitmodules"
|
|
|
|
- "CMakeLists.txt"
|
|
|
|
- "install.sh"
|
|
|
|
- "export.sh"
|
|
|
|
- "Kconfig"
|
|
|
|
- "sdkconfig.rename"
|
|
|
|
|
|
|
|
# Simplify the rules
|
|
|
|
.integration_test_rules:
|
|
|
|
rules:
|
|
|
|
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
|
|
changes: *patterns-integration_test
|
2023-11-03 06:13:34 -04:00
|
|
|
# support trigger by ci labels
|
|
|
|
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'
|
|
|
|
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
|
|
|
|
- if: '$CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'
|
2023-09-08 08:39:12 -04:00
|
|
|
|
|
|
|
gen_integration_pipeline:
|
|
|
|
extends:
|
|
|
|
- .before_script:minimal
|
|
|
|
- .integration_test_rules
|
|
|
|
image: ${CI_INTEGRATION_ASSIGN_ENV}
|
|
|
|
stage: assign_test
|
|
|
|
cache: []
|
2024-01-30 08:36:00 -05:00
|
|
|
tags: [fast_run, shiny]
|
2023-09-08 08:39:12 -04:00
|
|
|
variables:
|
|
|
|
SUBMODULES_TO_FETCH: "none"
|
|
|
|
GIT_LFS_SKIP_SMUDGE: 1
|
|
|
|
needs:
|
|
|
|
- job: fast_template_app
|
|
|
|
artifacts: false
|
|
|
|
optional: true
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- idf-integration-ci/child_pipeline/
|
|
|
|
expire_in: 2 weeks
|
2024-02-16 07:43:53 -05:00
|
|
|
when: always
|
2023-09-08 08:39:12 -04:00
|
|
|
script:
|
|
|
|
- add_gitlab_ssh_keys
|
|
|
|
- retry_failed git clone ${CI_GEN_INTEGRATION_PIPELINE_REPO} idf-integration-ci
|
|
|
|
- python $CHECKOUT_REF_SCRIPT idf-integration-ci idf-integration-ci
|
|
|
|
- cd idf-integration-ci
|
|
|
|
- python tools/generate_child_pipeline.py -o child_pipeline/
|
|
|
|
|
|
|
|
child_integration_test_pipeline:
|
|
|
|
extends:
|
|
|
|
- .integration_test_rules
|
|
|
|
stage: assign_test
|
|
|
|
needs:
|
|
|
|
- gen_integration_pipeline
|
|
|
|
trigger:
|
|
|
|
include:
|
|
|
|
- artifact: idf-integration-ci/child_pipeline/pipeline.yml
|
|
|
|
job: gen_integration_pipeline
|
|
|
|
forward:
|
|
|
|
yaml_variables: false
|
|
|
|
strategy: depend
|