mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
.deploy_job_template:
|
|
extends: .before_script_no_sync_submodule
|
|
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-schedule-always
|
|
image: $CI_DOCKER_REGISTRY/bot-env
|
|
tags:
|
|
- deploy_test
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- ${CI_PROJECT_DIR}/test-management/*.log
|
|
# save all test logs as artifacts, make it easier to track errors
|
|
- ${CI_PROJECT_DIR}/TEST_LOGS
|
|
expire_in: 1 mos
|
|
variables:
|
|
UNIT_TEST_CASE_FILE: "${CI_PROJECT_DIR}/components/idf_test/unit_test/TestCaseAll.yml"
|
|
BOT_ACCOUNT_CONFIG_FILE: "${CI_PROJECT_DIR}/test-management/Config/Account.local.yml"
|
|
TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
|
|
AUTO_TEST_SCRIPT_PATH: "${CI_PROJECT_DIR}/auto_test_script"
|
|
script:
|
|
- add_gitlab_ssh_keys
|
|
- export GIT_SHA=$(echo ${PIPELINE_COMMIT_SHA} | cut -c 1-8)
|
|
- export REV_COUNT=$(git rev-list --count ${PIPELINE_COMMIT_SHA} --)
|
|
- export SUMMARY="IDF CI test result for $GIT_SHA (r${REV_COUNT})"
|
|
# artifacts of job update_test_cases creates test-management folder
|
|
# we need to remove it so we can clone test-management folder again
|
|
- rm -rf test-management
|
|
- 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}
|
|
# update test results
|
|
- python3 ImportTestResult.py -r "$GIT_SHA (r${REV_COUNT})" -j $JIRA_TEST_MANAGEMENT_PROJECT -s "$SUMMARY" -l CI -p ${CI_PROJECT_DIR}/TEST_LOGS --pipeline_url ${CI_PIPELINE_URL}
|