assign_test: extends: .rules:test:any_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_esp32s3 - 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_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" AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script" 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