fix(ci): SHA-based production build/deploy - bypass act runner ref variable bugs #1641

Merged
xiaoxia merged 1 commits from fix/ci-sha-based-production-build into develop 2026-09-03 13:44:36 +08:00
+5 -9
View File
@@ -1462,7 +1462,7 @@ jobs:
- unit-tests
- frontend-lint
- frontend-unit-test
if: startsWith(github.ref_name, 'v') || (github.event_name == 'push' && github.ref_name == 'main')
if: github.event_name == 'push' && !failure() && !cancelled()
strategy:
fail-fast: false
matrix:
@@ -1546,11 +1546,7 @@ jobs:
set -eu
REGISTRY="xiaoxia-registry.cn-hangzhou.cr.aliyuncs.com/xiaoxiakeji"
# 根据ref类型设置镜像标签:tag用版本号,分支用分支名+sha
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
TAG_NAME="${GITHUB_REF_NAME}"
else
TAG_NAME="${GITHUB_REF_NAME}-${GITHUB_SHA::8}"
fi
TAG_NAME="${GITHUB_SHA}"
IMAGE_TAG="${REGISTRY}/${{ matrix.image_name }}:${TAG_NAME}"
CACHE_REF="${REGISTRY}/${{ matrix.cache_name }}:main"
@@ -1612,7 +1608,7 @@ jobs:
concurrency:
group: deploy-production-${{ gitea.ref }}
cancel-in-progress: false
if: startsWith(github.ref_name, 'v')
# if: removed - runs after build-production succeeds
needs:
- build-production
steps:
@@ -1685,7 +1681,7 @@ jobs:
echo "SSH connection verified"
# 通过环境变量传递凭证,避免命令行引号转义问题
cat scripts/ci_production_deploy.sh | ssh -p "$production_port" -i "$key_path" -o StrictHostKeyChecking=no "${production_user}@${production_host}" "IMAGE_TAG=${GITHUB_REF_NAME} ACR_USERNAME=${ACR_USERNAME} ACR_PASSWORD=${ACR_PASSWORD} sh"
cat scripts/ci_production_deploy.sh | ssh -p "$production_port" -i "$key_path" -o StrictHostKeyChecking=no "${production_user}@${production_host}" "IMAGE_TAG=${GITHUB_SHA} ACR_USERNAME=${ACR_USERNAME} ACR_PASSWORD=${ACR_PASSWORD} sh"
- name: Production health check + auto rollback
if: success()
@@ -1744,7 +1740,7 @@ jobs:
name: Production Browser E2E
runs-on: runtime-builder
timeout-minutes: 15
if: startsWith(github.ref_name, 'v')
# if: removed - runs after deploy-production succeeds
needs: deploy-production
steps:
- name: Checkout code