TUN-9800: Add pipeline to sync between gitlab and github repos
This commit is contained in:
parent
80b1634515
commit
71448c1f7f
|
|
@ -0,0 +1,17 @@
|
||||||
|
include:
|
||||||
|
- local: .ci/commons.gitlab-ci.yml
|
||||||
|
|
||||||
|
######################################
|
||||||
|
### Sync master branch with Github ###
|
||||||
|
######################################
|
||||||
|
push-github:
|
||||||
|
stage: sync
|
||||||
|
rules:
|
||||||
|
- !reference [.default-rules, run-on-master]
|
||||||
|
script:
|
||||||
|
- ./.ci/scripts/github-push.sh
|
||||||
|
secrets:
|
||||||
|
CLOUDFLARED_DEPLOY_SSH_KEY:
|
||||||
|
vault: gitlab/cloudflare/tun/cloudflared/_branch/master/cloudflared_github_ssh/data@kv
|
||||||
|
file: false
|
||||||
|
cache: {}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e -o pipefail
|
||||||
|
|
||||||
|
BRANCH="master"
|
||||||
|
TMP_PATH="$PWD/tmp"
|
||||||
|
PRIVATE_KEY_PATH="$TMP_PATH/github-deploy-key"
|
||||||
|
PUBLIC_KEY_GITHUB_PATH="$TMP_PATH/github.pub"
|
||||||
|
|
||||||
|
mkdir -p $TMP_PATH
|
||||||
|
|
||||||
|
# Setup Private Key
|
||||||
|
echo "$CLOUDFLARED_DEPLOY_SSH_KEY" > $PRIVATE_KEY_PATH
|
||||||
|
chmod 400 $PRIVATE_KEY_PATH
|
||||||
|
|
||||||
|
# Download GitHub Public Key for KnownHostsFile
|
||||||
|
ssh-keyscan -t ed25519 github.com > $PUBLIC_KEY_GITHUB_PATH
|
||||||
|
|
||||||
|
# Setup git ssh command with the right configurations
|
||||||
|
export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$PUBLIC_KEY_GITHUB_PATH -o IdentitiesOnly=yes -i $PRIVATE_KEY_PATH"
|
||||||
|
|
||||||
|
# Add GitHub as a new remote
|
||||||
|
git remote add github git@github.com:cloudflare/cloudflared.git || true
|
||||||
|
|
||||||
|
# GitLab doesn't pull branch references, instead it creates a new one on each pipeline.
|
||||||
|
# Therefore, we need to manually fetch the reference to then push it to GitHub.
|
||||||
|
git fetch origin $BRANCH:$BRANCH
|
||||||
|
git push -u github $BRANCH
|
||||||
|
|
||||||
|
if TAG="$(git describe --tags --exact-match 2>/dev/null)"; then
|
||||||
|
git push -u github "$TAG"
|
||||||
|
fi
|
||||||
|
|
@ -7,7 +7,7 @@ default:
|
||||||
VAULT_ID_TOKEN:
|
VAULT_ID_TOKEN:
|
||||||
aud: https://vault.cfdata.org
|
aud: https://vault.cfdata.org
|
||||||
|
|
||||||
stages: [pre-build, build, validate, test, package, release]
|
stages: [sync, pre-build, build, validate, test, package, release]
|
||||||
|
|
||||||
include:
|
include:
|
||||||
#####################################################
|
#####################################################
|
||||||
|
|
@ -15,6 +15,11 @@ include:
|
||||||
#####################################################
|
#####################################################
|
||||||
- local: .ci/commons.gitlab-ci.yml
|
- local: .ci/commons.gitlab-ci.yml
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
########### Sync Repository with Github #############
|
||||||
|
#####################################################
|
||||||
|
- local: .ci/github.gitlab-ci.yml
|
||||||
|
|
||||||
#####################################################
|
#####################################################
|
||||||
############# Build or Fetch CI Image ###############
|
############# Build or Fetch CI Image ###############
|
||||||
#####################################################
|
#####################################################
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue