cloudflare/cloudflared
Publicmirrored fromhttps://github.com/cloudflare/cloudflaredAvailable
.ci/scripts/github-push.sh
31lines · modecode
| 1 | #!/bin/bash |
| 2 | set -e -u -o pipefail |
| 3 | |
| 4 | BRANCH="master" |
| 5 | TMP_PATH="$PWD/tmp" |
| 6 | PRIVATE_KEY_PATH="$TMP_PATH/github-deploy-key" |
| 7 | PUBLIC_KEY_GITHUB_PATH="$TMP_PATH/github.pub" |
| 8 | |
| 9 | mkdir -p $TMP_PATH |
| 10 | |
| 11 | # Setup Private Key |
| 12 | echo "$CLOUDFLARED_DEPLOY_SSH_KEY" > $PRIVATE_KEY_PATH |
| 13 | chmod 400 $PRIVATE_KEY_PATH |
| 14 | |
| 15 | # Download GitHub Public Key for KnownHostsFile |
| 16 | ssh-keyscan -t ed25519 github.com > $PUBLIC_KEY_GITHUB_PATH |
| 17 | |
| 18 | # Setup git ssh command with the right configurations |
| 19 | export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$PUBLIC_KEY_GITHUB_PATH -o IdentitiesOnly=yes -i $PRIVATE_KEY_PATH" |
| 20 | |
| 21 | # Add GitHub as a new remote |
| 22 | git remote add github git@github.com:cloudflare/cloudflared.git || true |
| 23 | |
| 24 | # GitLab doesn't pull branch references, instead it creates a new one on each pipeline. |
| 25 | # Therefore, we need to manually fetch the reference to then push it to GitHub. |
| 26 | git fetch origin $BRANCH:$BRANCH |
| 27 | git push -u github $BRANCH |
| 28 | |
| 29 | if TAG="$(git describe --tags --exact-match 2>/dev/null)"; then |
| 30 | git push -u github "$TAG" |
| 31 | fi |
| 32 | |