85 lines
3.2 KiB
YAML
85 lines
3.2 KiB
YAML
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 |