diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a859bc586..79af5be08 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -270,7 +270,7 @@ test_build_system: - cd test_build_system - ${IDF_PATH}/tools/ci/test_build_system.sh -push_master_to_github: +push_to_github: stage: deploy image: $CI_DOCKER_REGISTRY/esp32-ci-env tags: @@ -281,8 +281,6 @@ push_master_to_github: - /^v\d+\.\d+(\.\d+)?($|-)/ when: on_success dependencies: [] - variables: - GITHUB_PUSH_REFS: refs/remotes/origin/release refs/remotes/origin/master before_script: *do_nothing_before script: - mkdir -p ~/.ssh @@ -293,12 +291,9 @@ push_master_to_github: - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config - git remote remove github &>/dev/null || true - git remote add github git@github.com:espressif/esp-idf.git - # What the next line of script does: goes through the list of refs for all branches we push to github, - # generates a snippet of shell which is evaluated. The snippet checks CI_COMMIT_SHA against the SHA - # (aka objectname) at tip of each branch, and if any SHAs match then it checks out the local branch - # and then pushes that ref to a corresponding github branch - - eval $(git for-each-ref --shell bash --format 'if [ $CI_COMMIT_SHA == %(objectname) ]; then git checkout -B %(refname:strip=3); git push --follow-tags github %(refname:strip=3); fi;' $GITHUB_PUSH_REFS) - + # Need separate push commands for tag builds and for branch builds + - "[ -n \"${CI_COMMIT_TAG}\" ] && git push github ${CI_COMMIT_TAG}" + - "[ -z \"${CI_COMMIT_TAG}\" ] && git push github ${CI_COMMIT_SHA}:refs/heads/${CI_COMMIT_REF_NAME}" deploy_docs: stage: host_test