mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
9c8e4fd4c5
Enable building and running of unit tests in CI for C3 as well as fix related compile errors Also enables building of C3 test apps
88 lines
4.5 KiB
YAML
88 lines
4.5 KiB
YAML
assign_test:
|
|
extends:
|
|
- .rules:assign_test:target_test-integration_test-weekend_test
|
|
tags:
|
|
- assign_test
|
|
image: $CI_DOCKER_REGISTRY/ubuntu-test-env$BOT_DOCKER_IMAGE_TAG
|
|
stage: assign_test
|
|
# gitlab ci do not support match job with RegEx or wildcard now in dependencies.
|
|
# we have a lot build example jobs. now we don't use dependencies, just download all artifacts of build stage.
|
|
dependencies: # Here is not a hard dependency relationship, could be skipped. so we do not use "needs" here.
|
|
- build_ssc_esp32
|
|
- build_esp_idf_tests_cmake_esp32
|
|
- build_esp_idf_tests_cmake_esp32s2
|
|
- build_esp_idf_tests_cmake_esp32c3
|
|
variables:
|
|
SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
|
|
EXAMPLE_TEST_DIR: "${CI_PROJECT_DIR}/examples"
|
|
CUSTOM_TEST_DIR: "${CI_PROJECT_DIR}/tools/test_apps"
|
|
UNIT_TEST_DIR: "${CI_PROJECT_DIR}/components/idf_test/unit_test"
|
|
# COMPONENT_UT_DIRS is set by `set_component_ut_vars` in `utils.sh`
|
|
COMPONENT_UT_OUTPUT_DIR: "${CI_PROJECT_DIR}/component_ut"
|
|
INTEGRATION_CONFIG_OUTPUT_PATH: "${CI_PROJECT_DIR}/components/idf_test/integration_test/CIConfigs"
|
|
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
|
|
# auto_test_script only supports python 3.7.x
|
|
PYTHON_VER: 3.7.7
|
|
artifacts:
|
|
paths:
|
|
- components/idf_test/*/CIConfigs
|
|
- $EXAMPLE_TEST_DIR/test_configs
|
|
- $CUSTOM_TEST_DIR/test_configs
|
|
- $COMPONENT_UT_OUTPUT_DIR/test_configs
|
|
- build_examples/artifact_index.json
|
|
- build_test_apps/artifact_index.json
|
|
- build_component_ut/artifact_index.json
|
|
- tools/unit-test-app/builds/artifact_index.json
|
|
expire_in: 1 week
|
|
script:
|
|
- set_component_ut_vars
|
|
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py example_test $EXAMPLE_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $EXAMPLE_TEST_DIR/test_configs
|
|
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py custom_test $CUSTOM_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $CUSTOM_TEST_DIR/test_configs
|
|
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py component_ut $COMPONENT_UT_DIRS -c $CI_TARGET_TEST_CONFIG_FILE -o $COMPONENT_UT_OUTPUT_DIR/test_configs
|
|
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py unit_test $UNIT_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $UNIT_TEST_DIR/CIConfigs
|
|
# clone test script to assign tests
|
|
# can not retry if downing git lfs files failed, so using empty_branch first.
|
|
- retry_failed git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} -b empty_branch
|
|
- retry_failed git -C auto_test_script checkout -f ${CI_AUTO_TEST_SCRIPT_REPO_BRANCH}
|
|
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script --customized_only
|
|
# assign integration test cases
|
|
- python ${ASSIGN_TEST_CASE_SCRIPT} -t ${INTEGRATION_TEST_CASE_PATH} -c $CI_TARGET_TEST_CONFIG_FILE -b $IDF_PATH/SSC/ssc_bin -o $INTEGRATION_CONFIG_OUTPUT_PATH
|
|
|
|
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_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"
|
|
AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
|
|
PYTHON_VER: 3.7.7
|
|
script:
|
|
- export GIT_SHA=$(echo ${CI_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
|