feat(ci): 试点规范 2(test → LAN → 手动 ubuntu2)
All checks were successful
CI-CD-2 / test (push) Successful in 2s
CI-CD-2 / deploy-lan (push) Successful in 3s
CI-CD-2 / deploy-cloud (push) Has been skipped

This commit is contained in:
2026-11-10 14:46:47 +08:00
parent 6d590673ae
commit adb1328b75
8 changed files with 271 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
name: 发布-云端
# 审核 = 人工在 Gitea Actions 点 Run workflow,填入已推送的 tag 版本 → 部署公网
# 发布历史 = git tag 列表(git tag -l 'v*'),发布版本号 = tag 名
on:
workflow_dispatch:
inputs:
version:
description: '发布版本(已推送的 tag,如 v1.0.4)'
required: true
jobs:
deploy:
runs-on: build-runner
env:
VERSION: ${{ inputs.version }}
steps:
- name: 校验版本号
run: |
if ! printf '%s' "$VERSION" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "❌ 版本号格式应为 vX.Y.Z,例如 v1.0.4"
exit 1
fi
- name: 拉取代码(tag 版本)
run: |
git clone --depth 1 --branch "$VERSION" "http://dafe:${{ secrets.GITHUB_TOKEN }}@192.168.51.66:3000/dafe/homepage.git" site
- name: 注入发布版本号(缓存击穿,版本=tag 名)
run: |
cd site
sed -i "s/?v=[0-9]*/?v=${VERSION}/g" index.html
- name: 发布到 ubuntu2(阿里云正式机,公网 www.shashann.com)
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
run: |
mkdir -p ~/.ssh && chmod 700 ~/.ssh
printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -H 101.133.145.181 >> ~/.ssh/known_hosts 2>/dev/null
cd site
ssh root@101.133.145.181 'mkdir -p /var/www/shashann-homepage && find /var/www/shashann-homepage -mindepth 1 -maxdepth 1 -exec rm -rf {} +'
tar czf - index.html assets robots.txt sitemap.xml llms.txt | ssh root@101.133.145.181 'tar xzf - -C /var/www/shashann-homepage'
- name: 上线验证
run: |
curl -s -f -o /dev/null --noproxy '*' --resolve www.shashann.com:443:101.133.145.181 https://www.shashann.com/ || { echo "❌ 公网验证失败"; exit 1; }
echo "✅ 云端已发布 ${VERSION} $(date '+%H:%M:%S')"