|
97 | 97 | ssh-agent -k |
98 | 98 | echo "SSH_AUTH_SOCK=" >> "$GITHUB_ENV" |
99 | 99 | echo "SSH_AGENT_PID=" >> "$GITHUB_ENV" |
| 100 | +
|
| 101 | + deploy-staging: |
| 102 | + runs-on: [self-hosted, linux, x64, v1] |
| 103 | + needs: [authgear-image-custom, portal-image-custom] |
| 104 | + if: ${{ github.repository == 'oursky/authgear-server' && github.ref == 'refs/heads/main' }} |
| 105 | + concurrency: |
| 106 | + group: deploy-staging |
| 107 | + cancel-in-progress: true |
| 108 | + steps: |
| 109 | + - uses: actions/checkout@v4 |
| 110 | + - name: Set up staging deploy key |
| 111 | + env: |
| 112 | + SSH_AUTH_SOCK: /tmp/ssh_agent.sock |
| 113 | + AUTHGEAR_STAGING_DEPLOY_KEY: ${{ secrets.AUTHGEAR_STAGING_DEPLOY_KEY }} |
| 114 | + run: | |
| 115 | + mkdir -p ~/.ssh |
| 116 | + eval $(ssh-agent -a $SSH_AUTH_SOCK) |
| 117 | + printf "$AUTHGEAR_STAGING_DEPLOY_KEY" | base64 --decode | ssh-add - |
| 118 | + ssh-keyscan github.com >> ~/.ssh/known_hosts |
| 119 | + echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> "$GITHUB_ENV" |
| 120 | + echo "SSH_AGENT_PID=$SSH_AGENT_PID" >> "$GITHUB_ENV" |
| 121 | +
|
| 122 | + - name: Clone staging repo and update image |
| 123 | + env: |
| 124 | + AUTHGEAR_STAGING_REPO: ${{ secrets.AUTHGEAR_STAGING_REPO }} |
| 125 | + run: | |
| 126 | + IMAGE_TAG=$(make -C custombuild --no-print-directory --eval='print-%: ; @echo $($*)' print-GIT_HASH) |
| 127 | + git clone "$AUTHGEAR_STAGING_REPO" staging-repo |
| 128 | + cd staging-repo |
| 129 | + git checkout master |
| 130 | + git config user.email "github-actions[bot]@users.noreply.github.com" |
| 131 | + git config user.name "github-actions[bot]" |
| 132 | + ./scripts/update-authgear-image.sh "$IMAGE_TAG" |
| 133 | + git push origin master |
| 134 | +
|
| 135 | + - name: Clean up staging deploy key |
| 136 | + if: ${{ always() }} |
| 137 | + run: | |
| 138 | + ssh-add -D |
| 139 | + ssh-agent -k |
| 140 | + echo "SSH_AUTH_SOCK=" >> "$GITHUB_ENV" |
| 141 | + echo "SSH_AGENT_PID=" >> "$GITHUB_ENV" |
0 commit comments