diff --git a/.gitea/workflows/prod_build_manual.yaml b/.gitea/workflows/prod_build_manual.yaml new file mode 100644 index 0000000..2270754 --- /dev/null +++ b/.gitea/workflows/prod_build_manual.yaml @@ -0,0 +1,85 @@ +name: 手动触发 FiDA WEB-Node.js 生产分支构建部署 +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 18.18.0 ] + env: + REMOTE_DEPLOY_PATH: /workspace/workspace_fida/Web_Workspace_Server/Prod + + steps: + - name: 0.记录开始时间 + id: build_start_time + run: echo "current_time=$(TZ='Asia/Hong_Kong' date '+%Y-%m-%d %H:%M:%S %Z')" >> $GITHUB_OUTPUT + + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: main + + - name: 2.设置 Node.js 环境 + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build:dev + - run: ls -l + + - name: 3.同步文件到远程服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + source: "./dist/*" + target: ${{ env.REMOTE_DEPLOY_PATH }} + ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + strip_components: 0 + + - name: 4. 远程重载 Nginx 配置 + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + # 核心:执行 Nginx 重载命令 + script: | + echo "尝试重载 Nginx 服务..." + # 💡 注意:执行此命令需要服务器用户具有 sudo 权限,并且配置了 NOPASSWD。 + # 否则工作流可能会因为权限不足而失败。 + sudo systemctl reload nginx + echo "Nginx 重载命令已发送。" + + - name: 5.发送构建结果邮件 + if: always() # 无论上一步是否失败,都执行此步骤 + uses: dawidd6/action-send-mail@v3 + with: + + from: ${{ secrets.MAIL_USERNAME }} + # --- 邮件配置 --- + server_address: smtp.gmail.com # 替换为你的SMTP服务器地址 + server_port: 465 # 替换为你的SMTP端口 (通常是465或587) + username: ${{ secrets.MAIL_USERNAME }} # 存储在Secrets中的邮箱用户名 + password: ${{ secrets.MAIL_PASSWORD }} # 存储在Secrets中的邮箱密码 + subject: 'Gitea Actions 构建通知: ${{ job.status }} - AiDA back-java Develop' + # 收件人列表,可以根据需要更改 + to: 'xupei3360@163.com,txli@aidlab.hk,cgzhou@aidlab.hk,zchengrong@yeah.net' # 替换为实际收件人邮箱 + + # --- 邮件正文内容 --- + body: | + 项目: AiDA back-java Develop + 分支: dev/3.1_release_merge + + 🎉 构建结果: ${{ job.status }} + + 📅 构建时间: ${{ steps.build_start_time.outputs.current_time }} + + 🔗 构建链接: ${{ gitea.server_url }}/${{ gitea.repository.owner.name }}/${{ gitea.repository.name }}/actions/runs/${{ gitea.run_id }} + + # 确保邮件内容为纯文本,或者你可以设置为 html: true 并调整 body + content_type: text/plain \ No newline at end of file