From 02816ed932b018efc78fe10118887ff2eade2438 Mon Sep 17 00:00:00 2001 From: dafe Date: Mon, 2 Nov 2026 15:11:06 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20Gitea=20Actions=20=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E7=BA=BF=EF=BC=88push=20=E8=87=AA=E5=8A=A8=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=B1=80=E5=9F=9F=E7=BD=91=EF=BC=8C=E4=BA=91=E7=AB=AF=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=E5=AE=A1=E6=A0=B8=E5=8F=91=E5=B8=83=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy-cloud.yml | 34 +++++++++++++++++++++++++++++ .gitea/workflows/deploy-lan.yml | 36 +++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .gitea/workflows/deploy-cloud.yml create mode 100644 .gitea/workflows/deploy-lan.yml diff --git a/.gitea/workflows/deploy-cloud.yml b/.gitea/workflows/deploy-cloud.yml new file mode 100644 index 0000000..b54a549 --- /dev/null +++ b/.gitea/workflows/deploy-cloud.yml @@ -0,0 +1,34 @@ +name: 发布-云端 +# 仅人工触发(Gitea 网页 Actions 页点 Run workflow)= 审核发布 +on: + workflow_dispatch: {} + +jobs: + deploy: + runs-on: build-runner + steps: + - name: 拉取代码 + run: | + git clone --depth 1 "http://dafe:${{ secrets.GITHUB_TOKEN }}@192.168.51.66:3000/dafe/homepage.git" site + + - name: 注入构建版本号(缓存击穿,版本=commit 短 SHA) + run: | + cd site + sed -i "s/?v=[0-9]*/?v=${GITHUB_SHA:0:8}/g" index.html + + - name: 发布到 ubuntu3(公网 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 124.222.157.76 >> ~/.ssh/known_hosts 2>/dev/null + cd site + ssh ubuntu@124.222.157.76 'mkdir -p /var/www/shashann-homepage && find /var/www/shashann-homepage -mindepth 1 -maxdepth 1 -exec rm -rf {} +' + tar czf - index.html assets | ssh ubuntu@124.222.157.76 'tar xzf - -C /var/www/shashann-homepage' + + - name: 上线验证 + run: | + curl -s -f -o /dev/null --resolve www.shashann.com:443:124.222.157.76 https://www.shashann.com/ || { echo "❌ 公网验证失败"; exit 1; } + echo "✅ 云端已发布 $(date '+%H:%M:%S')" diff --git a/.gitea/workflows/deploy-lan.yml b/.gitea/workflows/deploy-lan.yml new file mode 100644 index 0000000..2d655a4 --- /dev/null +++ b/.gitea/workflows/deploy-lan.yml @@ -0,0 +1,36 @@ +name: 部署-局域网 +# push 到 main 即自动上线 51.66(无人工环节) +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: build-runner + steps: + - name: 拉取代码 + run: | + git clone --depth 1 "http://dafe:${{ secrets.GITHUB_TOKEN }}@192.168.51.66:3000/dafe/homepage.git" site + + - name: 注入构建版本号(缓存击穿,版本=commit 短 SHA) + run: | + cd site + sed -i "s/?v=[0-9]*/?v=${GITHUB_SHA:0:8}/g" index.html + + - name: 部署到 51.66 + 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 192.168.51.66 >> ~/.ssh/known_hosts 2>/dev/null + cd site + # 清空后解压 = rsync --delete 的等效语义,服务器与 git 状态严格一致 + ssh ubuntu@192.168.51.66 'mkdir -p /home/ubuntu/homepage-site && find /home/ubuntu/homepage-site -mindepth 1 -maxdepth 1 -exec rm -rf {} +' + tar czf - index.html assets | ssh ubuntu@192.168.51.66 'tar xzf - -C /home/ubuntu/homepage-site' + + - name: 上线验证 + run: | + curl -sk -f -o /dev/null https://192.168.51.66/homepage/ || { echo "❌ 局域网验证失败"; exit 1; } + echo "✅ 局域网已上线 $(date '+%H:%M:%S')"