assign-test.yml 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. assign_test:
  2. tags:
  3. - assign_test
  4. image: $CI_DOCKER_REGISTRY/ubuntu-test-env$BOT_DOCKER_IMAGE_TAG
  5. stage: assign_test
  6. # gitlab ci do not support match job with RegEx or wildcard now in dependencies.
  7. # we have a lot build example jobs. now we don't use dependencies, just download all artifacts of build stage.
  8. dependencies:
  9. - build_ssc_esp32
  10. - build_esp_idf_tests_cmake_esp32
  11. - build_esp_idf_tests_cmake_esp32s2
  12. variables:
  13. SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
  14. EXAMPLE_CONFIG_OUTPUT_PATH: "$CI_PROJECT_DIR/examples/test_configs"
  15. TEST_APP_CONFIG_OUTPUT_PATH: "$CI_PROJECT_DIR/tools/test_apps/test_configs"
  16. UNIT_TEST_CASE_FILE: "${CI_PROJECT_DIR}/components/idf_test/unit_test"
  17. INTEGRATION_CONFIG_OUTPUT_PATH: "${CI_PROJECT_DIR}/components/idf_test/integration_test/CIConfigs"
  18. PYTHON_VER: 3.7.7
  19. artifacts:
  20. paths:
  21. - components/idf_test/*/CIConfigs
  22. - $EXAMPLE_CONFIG_OUTPUT_PATH
  23. - $TEST_APP_CONFIG_OUTPUT_PATH
  24. - build_examples/artifact_index.json
  25. - build_test_apps/artifact_index.json
  26. expire_in: 1 week
  27. only:
  28. variables:
  29. - $BOT_TRIGGER_WITH_LABEL == null
  30. - $BOT_LABEL_UNIT_TEST
  31. - $BOT_LABEL_UNIT_TEST_S2
  32. - $BOT_LABEL_INTEGRATION_TEST
  33. - $BOT_LABEL_EXAMPLE_TEST
  34. - $BOT_LABEL_CUSTOM_TEST
  35. script:
  36. # assign example tests
  37. - python tools/ci/python_packages/ttfw_idf/CIAssignExampleTest.py $IDF_PATH/examples $CI_TARGET_TEST_CONFIG_FILE $EXAMPLE_CONFIG_OUTPUT_PATH
  38. # assign test apps
  39. - python tools/ci/python_packages/ttfw_idf/CIAssignExampleTest.py --custom-group test-apps --job-prefix test_app_test_ $IDF_PATH/tools/test_apps $CI_TARGET_TEST_CONFIG_FILE $TEST_APP_CONFIG_OUTPUT_PATH
  40. # assign unit test cases
  41. - python tools/ci/python_packages/ttfw_idf/CIAssignUnitTest.py $UNIT_TEST_CASE_FILE $CI_TARGET_TEST_CONFIG_FILE $IDF_PATH/components/idf_test/unit_test/CIConfigs
  42. # clone test script to assign tests
  43. - ./tools/ci/retry_failed.sh git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} -b empty_branch
  44. - ./tools/ci/retry_failed.sh git -C auto_test_script checkout -f ${CI_AUTO_TEST_SCRIPT_REPO_BRANCH}
  45. - python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
  46. - export PYTHONPATH="${CI_PROJECT_DIR}/auto_test_script/packages:$PYTHONPATH"
  47. - cd auto_test_script
  48. # assign integration test cases
  49. - python bin/CIAssignTestCases.py -t TestCaseFiles/ -c $CI_TARGET_TEST_CONFIG_FILE -b $IDF_PATH/SSC/ssc_bin -o $INTEGRATION_CONFIG_OUTPUT_PATH
  50. update_test_cases:
  51. stage: assign_test
  52. image: $CI_DOCKER_REGISTRY/ubuntu-test-env
  53. tags:
  54. - deploy_test
  55. only:
  56. refs:
  57. - master
  58. - schedules
  59. dependencies:
  60. - build_esp_idf_tests_cmake_esp32
  61. - build_esp_idf_tests_cmake_esp32s2
  62. artifacts:
  63. when: always
  64. paths:
  65. - ${CI_PROJECT_DIR}/test-management/*.log
  66. expire_in: 1 week
  67. variables:
  68. SUBMODULES_TO_FETCH: "components/esptool_py/esptool"
  69. UNIT_TEST_CASE_DIR: "${CI_PROJECT_DIR}/components/idf_test/unit_test"
  70. BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
  71. AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
  72. PYTHON_VER: 3.7.7
  73. script:
  74. - export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8)
  75. - ./tools/ci/retry_failed.sh git clone $TEST_MANAGEMENT_REPO
  76. - python $CHECKOUT_REF_SCRIPT test-management test-management
  77. - cd test-management
  78. - echo $BOT_JIRA_ACCOUNT > ${BOT_ACCOUNT_CONFIG_FILE}
  79. # update unit test cases
  80. - export UNIT_TEST_CASE_FILES=$(find $UNIT_TEST_CASE_DIR -maxdepth 1 -name "*.yml" | xargs)
  81. - python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT unity -d $UNIT_TEST_CASE_FILES -r $GIT_SHA
  82. # update example test cases
  83. - python ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT tiny_test_fw -d ${CI_PROJECT_DIR}/examples -r $GIT_SHA
  84. # organize test cases
  85. - python OrganizeTestCases.py $JIRA_TEST_MANAGEMENT_PROJECT