diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..38e4c04 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,49 @@ +name: Deploy to Server +on: + push: + branches: [main] + workflow_dispatch: {} + +jobs: + build: + runs-on: + labels: mac-mini-2018 + + env: + APP_NAME: fucai-admin + BUILD_NAME: fucai-admin-${{ github.run_number }}-${{ github.sha }} + SSH_USER: root + SSH_HOST: 123.60.153.169 + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install deps & Build site + run: | + corepack enable + pnpm install --frozen-lockfile + pnpm build + + - name: Archive dist + run: | + tar -czf ${{ env.BUILD_NAME }}.tar.gz -C dist . + + - name: Upload to server + run: | + scp ${{ env.BUILD_NAME }}.tar.gz ${{ env.SSH_USER }}@${{ env.SSH_HOST }}:/tmp/ + + - name: Remote deploy + run: | + ssh ${{ env.SSH_USER }}@${{ env.SSH_HOST }} <<'SH' + set -e + cd /var/www/ + rm -rf ${{ env.APP_NAME }} + mkdir -p ${{ env.APP_NAME }} + tar -xzf /tmp/${{ env.BUILD_NAME }}.tar.gz -C ${{ env.APP_NAME }} + rm /tmp/${{ env.BUILD_NAME }}.tar.gz + SH