| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- .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
|