From 24414a8a4fa661c5dcfab5391f9e133ee47d4c9d Mon Sep 17 00:00:00 2001 From: Firq Date: Tue, 19 Dec 2023 23:27:43 +0100 Subject: [PATCH] Manual redeploy + port --- .forgejo/workflows/ci.yml | 32 ++++++++++++++++++-------------- .forgejo/workflows/redeploy.yml | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 .forgejo/workflows/redeploy.yml diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index b7268ff..984161f 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -8,10 +8,11 @@ jobs: runs-on: docker container: node:lts steps: - - uses: https://code.forgejo.org/actions/checkout@v3 - - name: + - name: Checkout source code + uses: https://code.forgejo.org/actions/checkout@v3 + - name: Install packages run: npm install - - name: Astro checks + - name: Run astro check (linting + static analysis) run: npm run astro check build-site: @@ -19,21 +20,24 @@ jobs: runs-on: docker container: node:lts steps: - - uses: https://code.forgejo.org/actions/checkout@v3 - - run: npm install + - name: Checkout checked source code + uses: https://code.forgejo.org/actions/checkout@v3 + - name: Install required packages + run: npm install - name: Build static site run: npm run build - name: Delete unnecessary data files run: rm -r public/assets/data/ - - name: Add missing config for binserve + - name: Copy missing config for binserve run: cp serve.json public - - uses: https://code.forgejo.org/actions/upload-artifact@v3 + - name: Save site artifact as static-site + uses: https://code.forgejo.org/actions/upload-artifact@v3 with: name: static-site path: public/ deploy-site: - needs: [build-site] + needs: [ build-site ] runs-on: docker env: DEPLOY_USER: ${{ secrets.DEPLOY_USER }} @@ -43,11 +47,11 @@ jobs: run: | which rsync || ( apt update -y && apt install rsync -y) which ssh-agent || ( apt update -y && apt install openssh-client -y) - - uses: actions/download-artifact@v3 + - name: Downloading static site artifacts + uses: actions/download-artifact@v3 with: name: static-site path: public - - run: ls -R - name: Install SSH Key uses: https://github.com/shimataro/ssh-key-action@v2 with: @@ -55,7 +59,7 @@ jobs: known_hosts: unnecessary - name: Adding Known Hosts run: ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts - - name: stop + cleanup + - name: Stop screen session, delete old files uses: https://github.com/appleboy/ssh-action@master with: host: ${{ env.DEPLOY_HOST }} @@ -64,9 +68,9 @@ jobs: script: | screen -X -S fgo-ta_com-public kill rm -r -f fgo-ta_com/public/* - - name: copy using rsync + - name: Copy files using rsync run: rsync -az --stats public/* ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }}:~/fgo-ta_com/public - - name: start + - name: Start new screen session uses: https://github.com/appleboy/ssh-action@master with: host: ${{ env.DEPLOY_HOST }} @@ -76,4 +80,4 @@ jobs: PATH="$HOME/.local/bin:$PATH" cd fgo-ta_com find public -maxdepth 1 -printf "%p\n" - screen -S fgo-ta_com-public -dm serve public/ -p 9200 + screen -S fgo-ta_com-public -dm serve public/ -p ${{ secrets.DEPLOY_TARGET_PORT }} diff --git a/.forgejo/workflows/redeploy.yml b/.forgejo/workflows/redeploy.yml new file mode 100644 index 0000000..05717ea --- /dev/null +++ b/.forgejo/workflows/redeploy.yml @@ -0,0 +1,32 @@ +on: + workflow_dispatch: + +jobs: + redeploy-site: + runs-on: docker + env: + DEPLOY_USER: ${{ secrets.DEPLOY_USER }} + DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} + steps: + - name: Install and update ssh + rsync + run: | + which rsync || ( apt update -y && apt install rsync -y) + which ssh-agent || ( apt update -y && apt install openssh-client -y) + - name: Install SSH Key + uses: https://github.com/shimataro/ssh-key-action@v2 + with: + key: ${{ secrets.SSH_PRIVATE_KEY }} + known_hosts: unnecessary + - name: Adding Known Hosts + run: ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts + - name: Restart screen session + uses: https://github.com/appleboy/ssh-action@master + with: + host: ${{ env.DEPLOY_HOST }} + username: ${{ env.DEPLOY_USER }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + screen -X -S fgo-ta_com-public kill + PATH="$HOME/.local/bin:$PATH" + cd fgo-ta_com + screen -S fgo-ta_com-public -dm serve public/ -p ${{ secrets.DEPLOY_TARGET_PORT }}