From 03a3074209aa7432e9407046ed2954592ef813a1 Mon Sep 17 00:00:00 2001 From: maru Date: Tue, 26 Mar 2024 20:50:44 -0400 Subject: [PATCH] Update workflow files --- .github/workflows/build.yml | 39 ---------------------------------- .github/workflows/deploy.yml | 41 ++++++++++++++++++++---------------- 2 files changed, 23 insertions(+), 57 deletions(-) delete mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 52123c26d..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Build - -on: - push: {} - pull_request: {} - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - name: Install dependencies - run: npm ci - - name: Build - run: npm run build - env: - NODE_ENV: production - - name: Upload Artifact - id: upload-artifact - uses: actions/upload-artifact@v4 - with: - name: "${{ github.event.repository.name }}-${{ github.sha }}" - path: dist - - name: Trigger Deployment - # only run on the main branch - if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch - uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0 - with: - event-type: deploy-ssh - client-payload: | - { - "ref": "${{ github.ref }}", - "sha": "${{ github.sha }}", - "artifact-url": "${{ steps.upload-artifact.outputs.artifact-url }}", - "artifact-name": "${{ github.event.repository.name }}-${{ github.sha }}" - } diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7e9f8f0c5..a1ce3c40e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,31 +1,36 @@ name: Deploy on: - repository_dispatch: - types: [deploy-ssh] + push: {} + pull_request: {} jobs: deploy: runs-on: ubuntu-latest - env: - ARTIFACT_NAME: ${{ github.event.client_payload.artifact-name }} - ARTIFACT_URL: ${{ github.event.client_payload.artifact-url }} steps: - - name: Deploy via SSH - id: deploy - uses: appleboy/ssh-action@029f5b4aeeeb58fdfe1410a5d17f967dacf36262 # v1.0.3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - host: ${{ secrets.SSH_HOST }} - username: ${{ secrets.SSH_USER }} - key: ${{ secrets.SSH_PRIVATE_KEY }} - port: ${{ secrets.SSH_PORT }} - script: | - cd ${{ secrets.TMP_DIR }} - wget -O "${{ env.ARTIFACT_NAME }}.zip" --header="Authorization: token ${{ github.token }}" ${{ env.ARTIFACT_URL }} - unzip -aDo "${{ env.ARTIFACT_NAME }}.zip" -d "${{ env.ARTIFACT_NAME }}" - rsync -vR --delete "${{ env.ARTIFACT_NAME }}/" "${{ secrets.DESTINATION_DIR }}" - rm -rf "./${{ env.ARTIFACT_NAME }}.zip" "./${{ env.ARTIFACT_NAME }}" + node-version: "20" + - name: Install dependencies + run: npm ci + - name: Build + run: npm run build + env: + NODE_ENV: production + - name: Set up SSH + if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch + run: | + mkdir ~/.ssh + echo "${{ secrets.SSH_PUBLIC_KEY }}" > ~/.ssh/id_ed25519.pub + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/* + ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts + - name: Deploy build on server + if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch + run: rsync -vrm dist/* ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DESTINATION_DIR }} - name: Purge Cloudflare Cache + if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch id: purge-cache uses: NathanVaughn/actions-cloudflare-purge@f70c63827b539cf48eb3a29fdaa7547eca4dede4 #latest commit at the time with: