81 lines
3.0 KiB
YAML
81 lines
3.0 KiB
YAML
name: AiDA WEB-Node.js 生产分支构建部署
|
||
on:
|
||
schedule:
|
||
# cron为UTC时区,构建时间=部署时间-8小时 {*分 (-8)时 *日 *月 *周} ---
|
||
# 示例: 1月1日22点22分触发构建 cron写作 - '22 14 1 1 *'
|
||
- cron: '00 14 23 3 *'
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
|
||
strategy:
|
||
matrix:
|
||
node-version: [ 18.18.0 ]
|
||
|
||
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: StableVersion
|
||
|
||
- 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.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用
|
||
run: |
|
||
echo "安装 AWS CLI V2..."
|
||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||
unzip awscliv2.zip
|
||
sudo ./aws/install --update
|
||
aws --version
|
||
echo "AWS CLI V2 安装完成。"
|
||
|
||
- name: 4.配置 AWS 凭证
|
||
uses: aws-actions/configure-aws-credentials@main
|
||
with:
|
||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||
aws-region: 'ap-east-1'
|
||
|
||
- name: 5.同步 dist 目录到 S3
|
||
run: |
|
||
aws s3 sync dist/ s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read
|
||
|
||
- name: 6.发送构建结果邮件
|
||
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: 'cgzhou@aidlab.hk,zchengrong@yeah.net' # 替换为实际收件人邮箱
|
||
|
||
# --- 邮件正文内容 ---
|
||
body: |
|
||
项目: AiDA WEB-Node.js 生产分支构建部署
|
||
分支: StableVersion
|
||
|
||
🎉 构建结果: ${{ 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 |