| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # 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"
- - ".gitlab/ci/integration_test.yml"
- - ".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
- # 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'
- gen_integration_pipeline:
- extends:
- - .before_script:minimal
- - .integration_test_rules
- image: ${CI_INTEGRATION_ASSIGN_ENV}
- stage: assign_test
- cache: []
- tags:
- - assign_test
- 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
- 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
|