From b1e4e69be2c270eff7dc57a222822e85f69c3879 Mon Sep 17 00:00:00 2001 From: jtbx Date: Sun, 28 Jan 2024 13:02:05 +0100 Subject: [PATCH 1/2] CI: Auto-remove closed PRs from staging --- .forgejo/workflows/cleanup.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/cleanup.yaml b/.forgejo/workflows/cleanup.yaml index c81e3da..bf17be8 100644 --- a/.forgejo/workflows/cleanup.yaml +++ b/.forgejo/workflows/cleanup.yaml @@ -1,7 +1,7 @@ on: pull_request: - pull_request_target: - - closed + types: + - closed jobs: cleanup-staging: @@ -11,9 +11,13 @@ jobs: steps: - name: Pipeline info PR run: | - echo "PR#${{ github.event.pull_request.number }} ${{ github.event.action }}" + echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}" - - name: Deploy - Remove PR from staging - if: github.event.action == 'closed' + - name: Staging Deployment - Prepare keys run: | - ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts' ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de -t "rm -r /var/www/next.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/" + echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv + chmod 400 deploykey.priv + echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts + - name: Staging Deployment - Remove PR from staging + run: | + ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts' ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de -t "rm -r /var/www/staging.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/" From d5fc2adfe1cebe0b207441aa6c2bff897505e696 Mon Sep 17 00:00:00 2001 From: jtbx Date: Sun, 28 Jan 2024 13:02:48 +0100 Subject: [PATCH 2/2] CI: Post staging URL to PR once (on open event) --- .forgejo/workflows/deploy.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/deploy.yaml b/.forgejo/workflows/deploy.yaml index af22d05..04dd8c2 100644 --- a/.forgejo/workflows/deploy.yaml +++ b/.forgejo/workflows/deploy.yaml @@ -17,7 +17,7 @@ jobs: steps: - name: Pipeline info run: | - echo "Run triggered by ${{ gitea.event_name }} on ref ${{ github.ref_name }}" + echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}" - name: Install packages run: | @@ -54,6 +54,16 @@ jobs: 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 - Add comment to PR with staging URL + if: github.event_name == 'pull_request' && github.event.action == 'opened' + run: | + curl \ + -X POST \ + ${{ github.event.pull_request.base.repo.url }}/issues/${{ github.event.pull_request.number }}/comments \ + -H "Content-Type: application/json" \ + -H "Authorization: token $GITHUB_TOKEN" \ + --data '{ "body": "You can view your changes at https://staging.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/" }' + - name: Deploy - Upload to prod if: github.event_name == 'push' && github.ref_name == 'main' run: |