mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
ci: dynamic integration test child pipeline
This commit is contained in:
@@ -12,7 +12,7 @@ stages:
|
|||||||
workflow:
|
workflow:
|
||||||
rules:
|
rules:
|
||||||
# Disable those non-protected push triggered pipelines
|
# Disable those non-protected push triggered pipelines
|
||||||
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_PIPELINE_SOURCE == "push"'
|
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && $CI_PIPELINE_SOURCE == "push"'
|
||||||
when: never
|
when: never
|
||||||
# when running merged result pipelines, it would create a temp commit id. use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA instead of $CI_COMMIT_SHA.
|
# when running merged result pipelines, it would create a temp commit id. use $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA instead of $CI_COMMIT_SHA.
|
||||||
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha
|
# Please use PIPELINE_COMMIT_SHA at all places that require a commit sha
|
||||||
@@ -62,7 +62,7 @@ variables:
|
|||||||
CLANG_STATIC_ANALYSIS_IMAGE: "${CI_DOCKER_REGISTRY}/clang-static-analysis:v4.4-1-2"
|
CLANG_STATIC_ANALYSIS_IMAGE: "${CI_DOCKER_REGISTRY}/clang-static-analysis:v4.4-1-2"
|
||||||
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:3"
|
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:3"
|
||||||
|
|
||||||
# target test config file, used by assign test job
|
# target test config file, used by scan test and assign test job
|
||||||
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/.gitlab/ci/target-test.yml"
|
CI_TARGET_TEST_CONFIG_FILE: "$CI_PROJECT_DIR/.gitlab/ci/target-test.yml"
|
||||||
|
|
||||||
# target test repo parameters
|
# target test repo parameters
|
||||||
@@ -140,6 +140,7 @@ include:
|
|||||||
- '.gitlab/ci/pre_check.yml'
|
- '.gitlab/ci/pre_check.yml'
|
||||||
- '.gitlab/ci/build.yml'
|
- '.gitlab/ci/build.yml'
|
||||||
- '.gitlab/ci/assign-test.yml'
|
- '.gitlab/ci/assign-test.yml'
|
||||||
|
- '.gitlab/ci/integration_test.yml'
|
||||||
- '.gitlab/ci/host-test.yml'
|
- '.gitlab/ci/host-test.yml'
|
||||||
- '.gitlab/ci/target-test.yml'
|
- '.gitlab/ci/target-test.yml'
|
||||||
- '.gitlab/ci/deploy.yml'
|
- '.gitlab/ci/deploy.yml'
|
||||||
|
@@ -136,10 +136,11 @@ check if there's a suitable `.if-<if-anchor-you-need>` anchor
|
|||||||
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
|
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
.rules:dev:
|
.rules:patterns:python-files:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-trigger
|
- <<: *if-protected
|
||||||
- <<: *if-dev-push
|
- <<: *if-dev-push
|
||||||
|
changes: *patterns-python-files
|
||||||
```
|
```
|
||||||
|
|
||||||
2. if there isn't
|
2. if there isn't
|
||||||
|
@@ -103,69 +103,3 @@ assign_unit_test:
|
|||||||
BUILD_DIR: ${CI_PROJECT_DIR}/tools/unit-test-app/builds
|
BUILD_DIR: ${CI_PROJECT_DIR}/tools/unit-test-app/builds
|
||||||
script:
|
script:
|
||||||
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
|
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
|
||||||
|
|
||||||
assign_integration_test:
|
|
||||||
extends:
|
|
||||||
- .assign_test_template
|
|
||||||
- .rules:test:integration_test
|
|
||||||
- .before_script_minimal
|
|
||||||
image: ${CI_INTEGRATION_TEST_ENV_IMAGE}
|
|
||||||
needs:
|
|
||||||
- build_ssc_esp32
|
|
||||||
- build_ssc_esp32c3
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- $TEST_DIR/test_configs
|
|
||||||
variables:
|
|
||||||
TEST_DIR: ${CI_PROJECT_DIR}/tools/ci/integration_test
|
|
||||||
BUILD_DIR: ${CI_PROJECT_DIR}/SSC/ssc_bin
|
|
||||||
INTEGRATION_TEST_CASE_PATH: "${CI_PROJECT_DIR}/auto_test_script/TestCaseFiles"
|
|
||||||
ASSIGN_TEST_CASE_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIAssignTestCases.py"
|
|
||||||
PYTHONPATH: ${CI_PROJECT_DIR}/auto_test_script/packages
|
|
||||||
GIT_LFS_SKIP_SMUDGE: 1
|
|
||||||
script:
|
|
||||||
- add_gitlab_ssh_keys
|
|
||||||
# clone test script to assign tests
|
|
||||||
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
|
|
||||||
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
|
|
||||||
- cd auto_test_script
|
|
||||||
- ./tools/ci/setup_idfci.sh
|
|
||||||
# assign integration test cases
|
|
||||||
- python ${ASSIGN_TEST_CASE_SCRIPT} -t ${INTEGRATION_TEST_CASE_PATH} -c $CI_TARGET_TEST_CONFIG_FILE -b ${BUILD_DIR} -o $TEST_DIR/test_configs
|
|
||||||
|
|
||||||
update_test_cases:
|
|
||||||
extends: .rules:ref:master-schedule
|
|
||||||
stage: assign_test
|
|
||||||
image: $CI_DOCKER_REGISTRY/ubuntu-test-env
|
|
||||||
tags:
|
|
||||||
- deploy_test
|
|
||||||
needs:
|
|
||||||
- build_esp_idf_tests_cmake_esp32
|
|
||||||
- build_esp_idf_tests_cmake_esp32s2
|
|
||||||
- build_esp_idf_tests_cmake_esp32s3
|
|
||||||
- build_esp_idf_tests_cmake_esp32c3
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- ${CI_PROJECT_DIR}/test-management/*.log
|
|
||||||
expire_in: 1 week
|
|
||||||
variables:
|
|
||||||
SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
|
|
||||||
UNIT_TEST_DIR: "${CI_PROJECT_DIR}/components/idf_test/unit_test"
|
|
||||||
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
|
|
||||||
PYTHONPATH: ${CI_PROJECT_DIR}/auto_test_script/packages
|
|
||||||
PYTHON_VER: 3.7.7
|
|
||||||
script:
|
|
||||||
- export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8)
|
|
||||||
- retry_failed git clone $TEST_MANAGEMENT_REPO
|
|
||||||
- python $CHECKOUT_REF_SCRIPT test-management test-management
|
|
||||||
- cd test-management
|
|
||||||
- echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
|
|
||||||
# update unit test cases
|
|
||||||
- export UNIT_TEST_CASE_FILES=$(find $UNIT_TEST_DIR -maxdepth 1 -name "*.yml" | xargs)
|
|
||||||
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT unity -d $UNIT_TEST_CASE_FILES -r $GIT_SHA
|
|
||||||
# update example test cases
|
|
||||||
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT tiny_test_fw -d ${CI_PROJECT_DIR}/examples -r $GIT_SHA
|
|
||||||
- python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT tiny_test_fw -d ${CI_PROJECT_DIR}/tools/test_apps -r $GIT_SHA
|
|
||||||
# organize test cases
|
|
||||||
- python OrganizeTestCases.py $JIRA_TEST_MANAGEMENT_PROJECT
|
|
||||||
|
@@ -51,44 +51,6 @@ fast_template_app:
|
|||||||
BUILD_COMMAND_ARGS: "-p"
|
BUILD_COMMAND_ARGS: "-p"
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
.build_ssc_template:
|
|
||||||
extends:
|
|
||||||
- .build_template
|
|
||||||
- .rules:build:integration_test
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- SSC/ssc_bin
|
|
||||||
expire_in: 1 week
|
|
||||||
script:
|
|
||||||
- retry_failed git clone $SSC_REPOSITORY
|
|
||||||
- python $CHECKOUT_REF_SCRIPT SSC SSC
|
|
||||||
- cd SSC
|
|
||||||
- MAKEFLAGS= ./ci_build_ssc.sh $TARGET_NAME
|
|
||||||
|
|
||||||
build_ssc_esp32:
|
|
||||||
extends: .build_ssc_template
|
|
||||||
parallel: 3
|
|
||||||
variables:
|
|
||||||
TARGET_NAME: "ESP32"
|
|
||||||
|
|
||||||
build_ssc_esp32s2:
|
|
||||||
extends: .build_ssc_template
|
|
||||||
parallel: 2
|
|
||||||
variables:
|
|
||||||
TARGET_NAME: "ESP32S2"
|
|
||||||
|
|
||||||
build_ssc_esp32c3:
|
|
||||||
extends: .build_ssc_template
|
|
||||||
parallel: 3
|
|
||||||
variables:
|
|
||||||
TARGET_NAME: "ESP32C3"
|
|
||||||
|
|
||||||
build_ssc_esp32s3:
|
|
||||||
extends: .build_ssc_template
|
|
||||||
parallel: 3
|
|
||||||
variables:
|
|
||||||
TARGET_NAME: "ESP32S3"
|
|
||||||
|
|
||||||
.build_esp_idf_tests_cmake_template:
|
.build_esp_idf_tests_cmake_template:
|
||||||
extends: .build_template
|
extends: .build_template
|
||||||
dependencies: # set dependencies to null to avoid missing artifacts issue
|
dependencies: # set dependencies to null to avoid missing artifacts issue
|
||||||
|
@@ -65,15 +65,6 @@
|
|||||||
- "build:{0}"
|
- "build:{0}"
|
||||||
- build:target_test
|
- build:target_test
|
||||||
|
|
||||||
build:integration_test:
|
|
||||||
labels:
|
|
||||||
- build
|
|
||||||
patterns:
|
|
||||||
- build_components
|
|
||||||
- build_system
|
|
||||||
included_in:
|
|
||||||
- build:target_test
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Target Test Jobs #
|
# Target Test Jobs #
|
||||||
####################
|
####################
|
||||||
@@ -113,22 +104,6 @@ build:integration_test:
|
|||||||
- "build:component_ut-{0}"
|
- "build:component_ut-{0}"
|
||||||
- build:target_test
|
- build:target_test
|
||||||
|
|
||||||
"test:integration_test_{0}":
|
|
||||||
matrix:
|
|
||||||
- - wifi
|
|
||||||
- ble
|
|
||||||
labels:
|
|
||||||
- integration_test_{0}
|
|
||||||
- integration_test
|
|
||||||
- target_test
|
|
||||||
patterns:
|
|
||||||
- integration_test_{0}
|
|
||||||
# - maybe others
|
|
||||||
included_in:
|
|
||||||
- test:integration_test
|
|
||||||
- build:integration_test
|
|
||||||
- build:target_test
|
|
||||||
|
|
||||||
"test:host_test":
|
"test:host_test":
|
||||||
labels:
|
labels:
|
||||||
- host_test
|
- host_test
|
||||||
|
@@ -17,41 +17,6 @@ push_to_github:
|
|||||||
- git remote add github git@github.com:espressif/esp-idf.git
|
- git remote add github git@github.com:espressif/esp-idf.git
|
||||||
- tools/ci/push_to_github.sh
|
- tools/ci/push_to_github.sh
|
||||||
|
|
||||||
deploy_test_result:
|
|
||||||
extends:
|
|
||||||
- .deploy_job_template
|
|
||||||
- .before_script_minimal
|
|
||||||
- .rules:ref:master-always
|
|
||||||
image: $CI_DOCKER_REGISTRY/bot-env
|
|
||||||
tags:
|
|
||||||
- deploy_test
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- ${CI_PROJECT_DIR}/test-management/*.log
|
|
||||||
# save all test logs as artifacts, make it easier to track errors
|
|
||||||
- ${CI_PROJECT_DIR}/TEST_LOGS
|
|
||||||
expire_in: 1 mos
|
|
||||||
variables:
|
|
||||||
UNIT_TEST_CASE_FILE: "${CI_PROJECT_DIR}/components/idf_test/unit_test/TestCaseAll.yml"
|
|
||||||
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
|
|
||||||
TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
|
|
||||||
AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
|
|
||||||
script:
|
|
||||||
- add_gitlab_ssh_keys
|
|
||||||
- export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8)
|
|
||||||
- export REV_COUNT=$(git rev-list --count ${PIPELINE_COMMIT_SHA} --)
|
|
||||||
- export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})"
|
|
||||||
# artifacts of job update_test_cases creates test-management folder
|
|
||||||
# we need to remove it so we can clone test-management folder again
|
|
||||||
- rm -rf test-management
|
|
||||||
- retry_failed git clone $TEST_MANAGEMENT_REPO
|
|
||||||
- python3 $CHECKOUT_REF_SCRIPT test-management test-management
|
|
||||||
- cd test-management
|
|
||||||
- echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
|
|
||||||
# update test results
|
|
||||||
- python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l CI -p ${CI_PROJECT_DIR}/TEST_LOGS --pipeline_url ${CI_PIPELINE_URL}
|
|
||||||
|
|
||||||
check_submodule_sync:
|
check_submodule_sync:
|
||||||
extends:
|
extends:
|
||||||
- .deploy_job_template
|
- .deploy_job_template
|
||||||
|
65
.gitlab/ci/integration_test.yml
Normal file
65
.gitlab/ci/integration_test.yml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
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
|
@@ -28,7 +28,7 @@ check_pre_commit_master_release:
|
|||||||
check_pre_commit_MR:
|
check_pre_commit_MR:
|
||||||
extends:
|
extends:
|
||||||
- .check_pre_commit_template
|
- .check_pre_commit_template
|
||||||
- .rules:dev
|
- .rules:mr
|
||||||
script:
|
script:
|
||||||
- python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files
|
- python ${CI_PROJECT_DIR}/tools/ci/ci_get_mr_info.py files ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} | xargs pre-commit run --files
|
||||||
|
|
||||||
|
@@ -88,20 +88,6 @@
|
|||||||
|
|
||||||
- "components/**/test_apps/**/*"
|
- "components/**/test_apps/**/*"
|
||||||
|
|
||||||
.patterns-integration_test_ble: &patterns-integration_test_ble
|
|
||||||
- "tools/ci/python_packages/gitlab_api.py"
|
|
||||||
- "tools/ci/integration_test/**/*"
|
|
||||||
- "components/bt/controller/lib_esp32"
|
|
||||||
- "components/bt/controller/lib_esp32c3_family"
|
|
||||||
- "components/bt/host/nimble/nimble"
|
|
||||||
- "components/esp_phy/lib"
|
|
||||||
|
|
||||||
.patterns-integration_test_wifi: &patterns-integration_test_wifi
|
|
||||||
- "tools/ci/python_packages/gitlab_api.py"
|
|
||||||
- "tools/ci/integration_test/**/*"
|
|
||||||
- "components/esp_wifi/lib"
|
|
||||||
- "components/esp_phy/lib"
|
|
||||||
|
|
||||||
.patterns-host_test: &patterns-host_test
|
.patterns-host_test: &patterns-host_test
|
||||||
- ".gitlab/ci/host-test.yml"
|
- ".gitlab/ci/host-test.yml"
|
||||||
|
|
||||||
@@ -199,6 +185,9 @@
|
|||||||
.if-dev-push: &if-dev-push
|
.if-dev-push: &if-dev-push
|
||||||
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
|
if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'
|
||||||
|
|
||||||
|
.if-merge_request: &if-merge_request
|
||||||
|
if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
|
|
||||||
.if-schedule: &if-schedule
|
.if-schedule: &if-schedule
|
||||||
if: '$CI_PIPELINE_SOURCE == "schedule"'
|
if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||||
|
|
||||||
@@ -219,6 +208,10 @@
|
|||||||
rules:
|
rules:
|
||||||
- <<: *if-protected-no_label
|
- <<: *if-protected-no_label
|
||||||
|
|
||||||
|
.rules:mr:
|
||||||
|
rules:
|
||||||
|
- <<: *if-merge_request
|
||||||
|
|
||||||
.rules:dev:
|
.rules:dev:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-trigger
|
- <<: *if-trigger
|
||||||
@@ -336,15 +329,6 @@
|
|||||||
.if-label-host_test: &if-label-host_test
|
.if-label-host_test: &if-label-host_test
|
||||||
if: '$BOT_LABEL_HOST_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*host_test(?:,[^,\n\r]+)*$/i'
|
if: '$BOT_LABEL_HOST_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*host_test(?:,[^,\n\r]+)*$/i'
|
||||||
|
|
||||||
.if-label-integration_test: &if-label-integration_test
|
|
||||||
if: '$BOT_LABEL_INTEGRATION_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test(?:,[^,\n\r]+)*$/i'
|
|
||||||
|
|
||||||
.if-label-integration_test_ble: &if-label-integration_test_ble
|
|
||||||
if: '$BOT_LABEL_INTEGRATION_TEST_BLE || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_ble(?:,[^,\n\r]+)*$/i'
|
|
||||||
|
|
||||||
.if-label-integration_test_wifi: &if-label-integration_test_wifi
|
|
||||||
if: '$BOT_LABEL_INTEGRATION_TEST_WIFI || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*integration_test_wifi(?:,[^,\n\r]+)*$/i'
|
|
||||||
|
|
||||||
.if-label-iperf_stress_test: &if-label-iperf_stress_test
|
.if-label-iperf_stress_test: &if-label-iperf_stress_test
|
||||||
if: '$BOT_LABEL_IPERF_STRESS_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*iperf_stress_test(?:,[^,\n\r]+)*$/i'
|
if: '$BOT_LABEL_IPERF_STRESS_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*iperf_stress_test(?:,[^,\n\r]+)*$/i'
|
||||||
|
|
||||||
@@ -647,23 +631,6 @@
|
|||||||
- <<: *if-dev-push
|
- <<: *if-dev-push
|
||||||
changes: *patterns-example_test
|
changes: *patterns-example_test
|
||||||
|
|
||||||
.rules:build:integration_test:
|
|
||||||
rules:
|
|
||||||
- <<: *if-protected
|
|
||||||
- <<: *if-label-build
|
|
||||||
- <<: *if-label-integration_test
|
|
||||||
- <<: *if-label-integration_test_ble
|
|
||||||
- <<: *if-label-integration_test_wifi
|
|
||||||
- <<: *if-label-target_test
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-build_components
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-build_system
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_ble
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_wifi
|
|
||||||
|
|
||||||
.rules:build:macos:
|
.rules:build:macos:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-protected
|
- <<: *if-protected
|
||||||
@@ -692,9 +659,6 @@
|
|||||||
- <<: *if-label-example_test_esp32c3
|
- <<: *if-label-example_test_esp32c3
|
||||||
- <<: *if-label-example_test_esp32s2
|
- <<: *if-label-example_test_esp32s2
|
||||||
- <<: *if-label-example_test_esp32s3
|
- <<: *if-label-example_test_esp32s3
|
||||||
- <<: *if-label-integration_test
|
|
||||||
- <<: *if-label-integration_test_ble
|
|
||||||
- <<: *if-label-integration_test_wifi
|
|
||||||
- <<: *if-label-iperf_stress_test
|
- <<: *if-label-iperf_stress_test
|
||||||
- <<: *if-label-target_test
|
- <<: *if-label-target_test
|
||||||
- <<: *if-label-unit_test
|
- <<: *if-label-unit_test
|
||||||
@@ -715,10 +679,6 @@
|
|||||||
changes: *patterns-custom_test
|
changes: *patterns-custom_test
|
||||||
- <<: *if-dev-push
|
- <<: *if-dev-push
|
||||||
changes: *patterns-example_test
|
changes: *patterns-example_test
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_ble
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_wifi
|
|
||||||
- <<: *if-dev-push
|
- <<: *if-dev-push
|
||||||
changes: *patterns-unit_test
|
changes: *patterns-unit_test
|
||||||
|
|
||||||
@@ -979,42 +939,6 @@
|
|||||||
- <<: *if-dev-push
|
- <<: *if-dev-push
|
||||||
changes: *patterns-host_test
|
changes: *patterns-host_test
|
||||||
|
|
||||||
.rules:test:integration_test:
|
|
||||||
rules:
|
|
||||||
- <<: *if-protected
|
|
||||||
- <<: *if-label-build-only
|
|
||||||
when: never
|
|
||||||
- <<: *if-label-integration_test
|
|
||||||
- <<: *if-label-integration_test_ble
|
|
||||||
- <<: *if-label-integration_test_wifi
|
|
||||||
- <<: *if-label-target_test
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_ble
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_wifi
|
|
||||||
|
|
||||||
.rules:test:integration_test_ble:
|
|
||||||
rules:
|
|
||||||
- <<: *if-protected
|
|
||||||
- <<: *if-label-build-only
|
|
||||||
when: never
|
|
||||||
- <<: *if-label-integration_test
|
|
||||||
- <<: *if-label-integration_test_ble
|
|
||||||
- <<: *if-label-target_test
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_ble
|
|
||||||
|
|
||||||
.rules:test:integration_test_wifi:
|
|
||||||
rules:
|
|
||||||
- <<: *if-protected
|
|
||||||
- <<: *if-label-build-only
|
|
||||||
when: never
|
|
||||||
- <<: *if-label-integration_test
|
|
||||||
- <<: *if-label-integration_test_wifi
|
|
||||||
- <<: *if-label-target_test
|
|
||||||
- <<: *if-dev-push
|
|
||||||
changes: *patterns-integration_test_wifi
|
|
||||||
|
|
||||||
.rules:test:submodule:
|
.rules:test:submodule:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-protected
|
- <<: *if-protected
|
||||||
|
@@ -793,275 +793,3 @@ component_ut_test_lan8720:
|
|||||||
tags:
|
tags:
|
||||||
- ESP32
|
- ESP32
|
||||||
- COMPONENT_UT_LAN8720
|
- COMPONENT_UT_LAN8720
|
||||||
|
|
||||||
.integration_test_template:
|
|
||||||
extends:
|
|
||||||
- .target_test_job_template
|
|
||||||
- .rules:test:integration_test
|
|
||||||
- .before_script_minimal
|
|
||||||
image: ${CI_INTEGRATION_TEST_ENV_IMAGE}
|
|
||||||
needs: # the assign already needs all the build jobs
|
|
||||||
- assign_integration_test
|
|
||||||
variables:
|
|
||||||
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32_IDF"
|
|
||||||
LOG_PATH: "${CI_PROJECT_DIR}/TEST_LOGS"
|
|
||||||
TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/auto_test_script/TestCaseFiles"
|
|
||||||
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/tools/ci/integration_test/test_configs"
|
|
||||||
KNOWN_ISSUE_FILE: "${CI_PROJECT_DIR}/tools/ci/integration_test/KnownIssues"
|
|
||||||
CI_RUNNER_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIRunner.py"
|
|
||||||
PREPARE_TEST_BIN_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/tools/ci/idf_prepare_test_bins.py"
|
|
||||||
PYTHONPATH: "${CI_PROJECT_DIR}/auto_test_script/packages:${CI_PROJECT_DIR}/tools/ci/python_packages:${PYTHONPATH}"
|
|
||||||
INITIAL_CONDITION_RETRY_COUNT: "1"
|
|
||||||
GIT_LFS_SKIP_SMUDGE: 1
|
|
||||||
script:
|
|
||||||
- *define_config_file_name
|
|
||||||
# first test if config file exists, if not exist, exit 0
|
|
||||||
- test -e $CONFIG_FILE || exit 0
|
|
||||||
- add_gitlab_ssh_keys
|
|
||||||
# clone local test env configs
|
|
||||||
- retry_failed git clone $TEST_ENV_CONFIG_REPO
|
|
||||||
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
|
|
||||||
# clone test bench
|
|
||||||
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
|
|
||||||
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
|
|
||||||
- cd auto_test_script
|
|
||||||
- ./tools/ci/setup_idfci.sh
|
|
||||||
# Merge known issues
|
|
||||||
- cat ${KNOWN_ISSUE_FILE} >> ${TEST_CASE_FILE_PATH}/KnownIssues
|
|
||||||
# run test
|
|
||||||
- python ${PREPARE_TEST_BIN_SCRIPT} $CONFIG_FILE
|
|
||||||
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$JOB_FULL_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
|
|
||||||
|
|
||||||
.integration_test_esp32c3_template:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
variables:
|
|
||||||
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32C3_IDF"
|
|
||||||
|
|
||||||
nvs_compatible_test:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- $LOG_PATH
|
|
||||||
- nvs_wifi.bin
|
|
||||||
expire_in: 1 mos
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- NVS_Compatible
|
|
||||||
script:
|
|
||||||
- *define_config_file_name
|
|
||||||
# first test if config file exists, if not exist, exit 0
|
|
||||||
- test -e $CONFIG_FILE || exit 0
|
|
||||||
- add_gitlab_ssh_keys
|
|
||||||
# clone local test env configs
|
|
||||||
- retry_failed git clone $TEST_ENV_CONFIG_REPO
|
|
||||||
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
|
|
||||||
# clone test bench
|
|
||||||
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} auto_test_script
|
|
||||||
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
|
|
||||||
- cd auto_test_script
|
|
||||||
- ./tools/ci/setup_idfci.sh
|
|
||||||
# prepare nvs bins
|
|
||||||
- ./tools/prepare_nvs_bin.sh
|
|
||||||
# run test
|
|
||||||
- python ${PREPARE_TEST_BIN_SCRIPT} $CONFIG_FILE
|
|
||||||
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$JOB_FULL_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
|
|
||||||
|
|
||||||
IT_T1_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
parallel: 2
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_Simple
|
|
||||||
|
|
||||||
IT_T1_WAP:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_WAP
|
|
||||||
|
|
||||||
IT_T2_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
parallel: 9
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T2_Simple
|
|
||||||
|
|
||||||
IT_T5_BT_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
parallel: 3
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T5_BT_Simple
|
|
||||||
|
|
||||||
IT_T2_BT_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
parallel: 6
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T2_BT_Simple
|
|
||||||
|
|
||||||
IT_T1_BT_Dongle:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
parallel: 2
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_BT_Dongle
|
|
||||||
|
|
||||||
IT_T1_AP:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_AP
|
|
||||||
|
|
||||||
IT_T1_AP_E:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
parallel: 5
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_AP_E
|
|
||||||
|
|
||||||
IT_T1_WNIC_AP:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_WNIC_AP
|
|
||||||
|
|
||||||
IT_T1_WNIC_AP_E:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_WNIC_AP_E
|
|
||||||
|
|
||||||
IT_T1_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_MESH1
|
|
||||||
|
|
||||||
IT_T2_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
parallel: 2
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T2_MESH1
|
|
||||||
|
|
||||||
IT_T3_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T3_MESH1
|
|
||||||
|
|
||||||
IT_T6_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T6_MESH1
|
|
||||||
|
|
||||||
IT_T12_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T12_MESH1
|
|
||||||
|
|
||||||
IT_T50_MESH1:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
allow_failure: true
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T50_MESH1
|
|
||||||
|
|
||||||
IT_T1_MESH2:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T1_MESH2
|
|
||||||
|
|
||||||
IT_T2_WNIC:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T2_WNIC
|
|
||||||
|
|
||||||
IT_T2_AP:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T2_AP
|
|
||||||
|
|
||||||
IT_T3_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_template
|
|
||||||
- .rules:test:integration_test_wifi
|
|
||||||
tags:
|
|
||||||
- ESP32_IDF
|
|
||||||
- SSC_T3_Simple
|
|
||||||
|
|
||||||
IT_C3_T2_BT_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_esp32c3_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
parallel: 9
|
|
||||||
tags:
|
|
||||||
- ESP32C3_IDF
|
|
||||||
- SSC_T2_BT_Simple
|
|
||||||
|
|
||||||
IT_C3_T5_BT_Simple:
|
|
||||||
extends:
|
|
||||||
- .integration_test_esp32c3_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
parallel: 5
|
|
||||||
tags:
|
|
||||||
- ESP32C3_IDF
|
|
||||||
- SSC_T5_BT_Simple
|
|
||||||
|
|
||||||
IT_C3_T1_BT_Dongle:
|
|
||||||
extends:
|
|
||||||
- .integration_test_esp32c3_template
|
|
||||||
- .rules:test:integration_test_ble
|
|
||||||
image: gitlab.espressif.cn:5050/qa/dockerfiles/integration-test-env-dbg:1
|
|
||||||
parallel: 2
|
|
||||||
tags:
|
|
||||||
- ESP32C3_IDF
|
|
||||||
- SSC_T1_BT_Dongle
|
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
# MESH
|
|
||||||
ESP32.MESH_EST_2109
|
|
||||||
# CI
|
|
||||||
ESP32.BLUEDROID_GAP_03003
|
|
||||||
ESP32.NIMBLE_GAP_14007
|
|
||||||
|
|
||||||
ESP32C3.NIMBLE_GAP_14009
|
|
||||||
ESP32C3.NIMBLE_GAP_17021
|
|
@@ -1,21 +0,0 @@
|
|||||||
# Integration Test Description
|
|
||||||
|
|
||||||
## Case Lists
|
|
||||||
- WiFi Standard cases for only esp32.
|
|
||||||
- BLE Standard cases for esp32 and esp32c3.
|
|
||||||
|
|
||||||
## Trigger
|
|
||||||
- By labels:
|
|
||||||
- `integration_test`
|
|
||||||
- By file changes:
|
|
||||||
- integration test related files
|
|
||||||
- By bot:
|
|
||||||
- `@bot test with label: integration_test`
|
|
||||||
|
|
||||||
## Advanced
|
|
||||||
- There are labels can be used to run less integration test cases.
|
|
||||||
- These labels only take effect when the integration test has been triggered.
|
|
||||||
- label: `integration::wifi_only`
|
|
||||||
- Only run WiFi cases.
|
|
||||||
- label: `integration::ble_only`
|
|
||||||
- Only run BLE cases.
|
|
Reference in New Issue
Block a user