From 7d596f2a30f3cd838851299e9f7f0065809eb482 Mon Sep 17 00:00:00 2001 From: jtbx Date: Thu, 18 Jan 2024 22:03:18 +0100 Subject: [PATCH] WIP CI: Split pipeline into two stages --- .forgejo/workflows/deploy.yaml | 37 +++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/.forgejo/workflows/deploy.yaml b/.forgejo/workflows/deploy.yaml index 3e7fbf0..a31678d 100644 --- a/.forgejo/workflows/deploy.yaml +++ b/.forgejo/workflows/deploy.yaml @@ -27,8 +27,6 @@ jobs: apk add nodejs-current # For website build. apk add tzdata coreutils curl jq git - # For uploading. - apk add rsync openssh - uses: actions/checkout@v4 @@ -43,25 +41,44 @@ jobs: ./fetch-calendar.sh hugo + # TODO: Turn retention time down for scheduled runs + - uses: actions/upload-artifact@v3 + with: + name: website-build + path: public/ + + deploy: + needs: [build] + runs-on: docker + container: + image: alpine + if: github.event_name == 'push' + steps: + - name: Install packages + run: | + apk update + # For CI actions. + apk add nodejs-current + # For uploading. + apk add rsync openssh + - name: Deploy - Prepare keys - if: github.event_name == 'push' || github.event_name == 'pull_request' + if: github.event_name == 'pull_request' run: | echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv chmod 400 deploykey.priv echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts + - uses: actions/download-artifact@v3 + with: + name: website-build + - name: Deploy - Upload PR to staging if: github.event_name == 'pull_request' run: | echo "Deploying to staging.hamburg.ccc.de/pr${{ github.event.pull_request.number }}" rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/staging.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/ - name: Deploy - Upload to prod - if: github.event_name == 'push' && github.ref_name == 'main' + if: github.ref_name == 'main' run: | rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/hamburg.ccc.de/ - - - uses: actions/upload-artifact@v3 - if: github.event_name == 'pull_request' - with: - name: website-build - path: public/