.deploy_job_template: stage: deploy image: $ESP_ENV_IMAGE tags: - deploy # Check this before push_to_github check_submodule_sync: extends: - .deploy_job_template - .rules:test:submodule stage: test_deploy tags: - github_sync retry: 2 variables: GIT_STRATEGY: clone SUBMODULES_TO_FETCH: "none" PUBLIC_IDF_URL: "https://github.com/espressif/esp-idf.git" dependencies: [] script: - git submodule deinit --force . # setting the default remote URL to the public one, to resolve relative location URLs - git config remote.origin.url ${PUBLIC_IDF_URL} # check if all submodules are correctly synced to public repository - git submodule init - git config --get-regexp '^submodule\..*\.url$' || true - git submodule update --recursive - echo "IDF was cloned from ${PUBLIC_IDF_URL} completely" push_to_github: extends: - .deploy_job_template - .before_script_minimal - .rules:protected-no_label dependencies: [] script: - add_github_ssh_keys - git remote remove github &>/dev/null || true - git remote add github git@github.com:espressif/esp-idf.git - 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:1 dependencies: [] tags: - deploy_test artifacts: when: always paths: - ${CI_PROJECT_DIR}/test-management/*.log expire_in: 1 week variables: BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml" TEST_RESULTS_PATH: "${CI_PROJECT_DIR}/TEST_RESULTS" script: - add_gitlab_ssh_keys - export GIT_SHA=$(echo ${CI_COMMIT_SHA} | cut -c 1-8) - export REV_COUNT=$(git rev-list --count ${GIT_SHA} --) - export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})" # Download test result - export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH" - python3 ${IDF_PATH}/tools/ci/get_all_test_results.py --path ${TEST_RESULTS_PATH} --include_retried - if [[ -z $(find ${TEST_RESULTS_PATH} -name "*.xml") ]]; then exit 0; fi # Clone test-management repo - 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} # Make sure all requirements are installed - pip3 install -r requirements.txt # Update test cases - python3 ImportTestCase.py $JIRA_TEST_MANAGEMENT_PROJECT from_xml -d ${TEST_RESULTS_PATH} -r $GIT_SHA -l IDFCI # update test results - python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l IDFCI -p ${TEST_RESULTS_PATH} --pipeline_url ${CI_PIPELINE_URL} # May need a long time to upload all test results. timeout: 4 hours