From 616b64a74229438235bb62eac37464cd71042b74 Mon Sep 17 00:00:00 2001 From: log101 Date: Mon, 29 Jul 2024 19:06:56 +0300 Subject: [PATCH] ci: add deploy script --- .gitea/workflows/static-deploy.yml | 90 ++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .gitea/workflows/static-deploy.yml diff --git a/.gitea/workflows/static-deploy.yml b/.gitea/workflows/static-deploy.yml new file mode 100644 index 0000000..1f6dd91 --- /dev/null +++ b/.gitea/workflows/static-deploy.yml @@ -0,0 +1,90 @@ +run-name: ${{ gitea.actor }}, deploy with ssh +on: + push: + branches: + - "release" + +env: + BUILD_PATH: "." + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=yarn" >> $GITHUB_OUTPUT + echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + echo "runner=npx --no-install" >> $GITHUB_OUTPUT + echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine package manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: ${{ steps.detect-package-manager.outputs.manager }} + cache-dependency-path: + ${{ env.BUILD_PATH }}/${{ + steps.detect-package-manager.outputs.lockfile }} + - name: Install dependencies + run: + ${{ steps.detect-package-manager.outputs.manager }} ${{ + steps.detect-package-manager.outputs.command }} + working-directory: ${{ env.BUILD_PATH }} + - name: Make envfile + uses: SpicyPizza/create-envfile@v2.0 + with: + envkey_PUBLIC_BACKEND_HOST: ${{ vars.PUBLIC_BACKEND_HOST }} + - name: Build with Astro + run: | + ${{ steps.detect-package-manager.outputs.runner }} astro build + working-directory: ${{ env.BUILD_PATH }} + - name: Deploy to my server + id: deploy + uses: up9cloud/action-rsync@master + env: + USER: ${{ secrets.USERNAME }} + HOST: ${{ secrets.HOST }} + KEY: ${{ secrets.KEY }} + SOURCE: ./dist/ + TARGET: ${{ secrets.DESTINATION_FOLDER }} + + ARGS: -avz --exclude=/.git/ + SSH_ARGS: + "-p 22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + VERBOSE: true + + PRE_SCRIPT: | + echo start at: + date -u + POST_SCRIPT: "echo done at: && date -u" + - name: Send email notification + uses: dawidd6/action-send-mail@v3 + if: ${{ always() }} + with: + server_address: mail.log101.dev + server_port: 465 + secure: true + username: ${{secrets.MAIL_USERNAME}} + password: ${{secrets.MAIL_PASSWORD}} + subject: Github Actions job result + to: ffrknerdm@gmail.com + from: gitea@log101.dev + body: + Build job of ${{github.repository}} completed with status ${{ + steps.deploy.outcome }}!