name: Deploy on: # 推送时执行 push: branches: [dev] # 可手动执行 workflow_dispatch: jobs: deploy-web: runs-on: ubuntu-latest steps: # 1、检出源码 - name: Checkout uses: actions/checkout@master # 2、安装 PNPM - name: Setup PNPM uses: pnpm/action-setup@v2 with: version: latest # 3、安装 Node 环境 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 18 cache: pnpm cache-dependency-path: ./pnpm-lock.yaml # 4、安装依赖 - name: Install Dependencies run: pnpm i --frozen-lockfile # 5、打包 - name: Build run: pnpm build # 6、拷贝到服务器 - name: Copy uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.SERVER_HOST }} port: ${{ secrets.SERVER_PORT }} username: ${{ secrets.SERVER_USERNAME }} password: ${{ secrets.SERVER_PASSWORD }} source: ./dist/* target: /tmp/html strip_components: 1 # 7、重启 Nginx - name: Restart uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_HOST }} port: ${{ secrets.SERVER_PORT }} username: ${{ secrets.SERVER_USERNAME }} password: ${{ secrets.SERVER_PASSWORD }} script: | rm -rf ${{ secrets.SERVER_PATH }}/* mv /tmp/html/* ${{ secrets.SERVER_PATH }} chmod -R 777 ${{ secrets.SERVER_PATH }}