name: Build CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install pnpm uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - name: Use Node.js uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: 24.x cache: 'pnpm' - name: install run: pnpm install --frozen-lockfile - name: Build run: pnpm build:prod - name: ClearFile uses: appleboy/ssh-action@0ff4204d59e8e51228ff73bce53f80d53301dee2 # v1.2.5 with: host: ${{ secrets.SSH_HOST }} # 下面三个配置与上一步类似 username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.DEPLOY_KEY }} # 重启的脚本,根据自身情况做相应改动,一般要做的是migrate数据库以及重启服务器 script: | sudo rm -rf /www/vue2/* - name: Deploy to Server # 第四步,rsync推送文件 uses: AEnterprise/rsync-deploy@72ddc262307c9dd0213aa3fbd9816c8932260326 # v1.0.2 # 使用别人包装好的步骤镜像 env: DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} # 引用配置,SSH私钥 ARGS: -avz --delete --exclude='*.pyc' # rsync参数,排除.pyc文件 SERVER_PORT: '22' # SSH端口 FOLDER: ./dist/* # 要推送的文件夹,路径相对于代码仓库的根目录 SERVER_IP: ${{ secrets.SSH_HOST }} # 引用配置,服务器的host名(IP或者域名domain.com) USERNAME: ${{ secrets.SSH_USERNAME }} # 引用配置,服务器登录名 SERVER_DESTINATION: /www/vue2/ # 部署到目标文件夹