Update deploy.yml

This commit is contained in:
TerryM
2026-05-26 15:26:40 +08:00
parent f6c0f30921
commit 31b7d53b69

View File

@@ -48,6 +48,7 @@ jobs:
- name: Deploy to both servers - name: Deploy to both servers
run: | run: |
set -euo pipefail
deploy_to() { deploy_to() {
local HOST=$1 local HOST=$1
echo ">>> 部署到 $HOST" echo ">>> 部署到 $HOST"
@@ -58,25 +59,37 @@ jobs:
echo ">>> $HOST 部署完成" echo ">>> $HOST 部署完成"
} }
deploy_to "${{ secrets.FRONTEND_1_HOST }}" & deploy_to "${{ secrets.FRONTEND_1_HOST }}" &
PID1=$!
deploy_to "${{ secrets.FRONTEND_2_HOST }}" & deploy_to "${{ secrets.FRONTEND_2_HOST }}" &
wait PID2=$!
FAIL=0
wait $PID1 || { echo "ERROR: frontend-1 部署失败"; FAIL=1; }
wait $PID2 || { echo "ERROR: frontend-2 部署失败"; FAIL=1; }
[ $FAIL -eq 0 ] || exit 1
echo "=== 两台都部署完成 ===" echo "=== 两台都部署完成 ==="
- name: Verify both servers match - name: Verify both servers match local build
run: | run: |
set -euo pipefail
LOCAL=$(sha256sum dist/index.html | awk '{print $1}')
SUM1=$(ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \ SUM1=$(ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
ec2-user@${{ secrets.FRONTEND_1_HOST }} \ ec2-user@${{ secrets.FRONTEND_1_HOST }} \
"sha256sum /var/www/ark-library/index.html | awk '{print \$1}'") "sha256sum /var/www/ark-library/index.html | awk '{print \$1}'")
SUM2=$(ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \ SUM2=$(ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
ec2-user@${{ secrets.FRONTEND_2_HOST }} \ ec2-user@${{ secrets.FRONTEND_2_HOST }} \
"sha256sum /var/www/ark-library/index.html | awk '{print \$1}'") "sha256sum /var/www/ark-library/index.html | awk '{print \$1}'")
echo "local: $LOCAL"
echo "frontend-1: $SUM1" echo "frontend-1: $SUM1"
echo "frontend-2: $SUM2" echo "frontend-2: $SUM2"
if [ "$SUM1" != "$SUM2" ]; then if [ "$SUM1" != "$LOCAL" ]; then
echo "ERROR: 两台 index.html 不一样!" echo "ERROR: frontend-1 不是本次构建的版本"
exit 1 exit 1
fi fi
echo "✓ 两台 checksum 一致,部署成功。" if [ "$SUM2" != "$LOCAL" ]; then
echo "ERROR: frontend-2 不是本次构建的版本"
exit 1
fi
echo "✓ 两台都已经更新到本次构建的版本。"
- name: Cleanup SSH key - name: Cleanup SSH key
if: always() if: always()