54 lines
1.7 KiB
YAML
54 lines
1.7 KiB
YAML
name: 定时 AiDA WEB-Node.js main 分支构建部署
|
||
on:
|
||
schedule:
|
||
# cron为UTC时区,构建时间=部署时间-8小时 {*分 (-8)时 *日 *月 *周} ---
|
||
# 示例: 1月1日22点22分触发构建 cron写作 - '22 14 1 1 *'
|
||
- cron: '22 14 1 1 *'
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
|
||
strategy:
|
||
matrix:
|
||
node-version: [ 20.19.0 ]
|
||
|
||
env:
|
||
REMOTE_DEPLOY_PATH: /workspace/workspace_lanecrawford/front
|
||
|
||
steps:
|
||
- name: 1.检出代码
|
||
uses: actions/checkout@v4
|
||
|
||
- name: 2.设置 Node.js 环境
|
||
uses: actions/setup-node@v6
|
||
with:
|
||
node-version: ${{ matrix.node-version }}
|
||
- run: npm install
|
||
- run: npm run build
|
||
- 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 重载命令已发送。" |