diff --git a/.gitea/workflows/ci-pipeline.yml b/.gitea/workflows/ci-pipeline.yml index 1710dc2b9..9ae5b1fba 100755 --- a/.gitea/workflows/ci-pipeline.yml +++ b/.gitea/workflows/ci-pipeline.yml @@ -1022,12 +1022,22 @@ jobs: BRANCH_TAG="${IMAGE_FULL}:${GITHUB_REF_NAME}" CACHE_REF="${REGISTRY}/${{ matrix.cache_name }}:${GITHUB_REF_NAME}" + # develop 分支额外推送 :dev tag(Watchtower 监听的滚动更新 tag) + if [ "${GITHUB_REF_NAME}" = "develop" ]; then + DEV_TAG="${IMAGE_FULL}:dev" + EXTRA_TAGS="$BRANCH_TAG $DEV_TAG" + PUSHED_TAGS_SUMMARY="${BRANCH_TAG} + ${DEV_TAG}" + else + EXTRA_TAGS="$BRANCH_TAG" + PUSHED_TAGS_SUMMARY="${BRANCH_TAG}" + fi + EXTRA_BUILD_ARGS="APP_VERSION=\"${GITHUB_SHA}\"" NO_CACHE_FLAG="" for i in 1 2 3; do echo "=== Docker build 尝试 $i/3 (${{ matrix.service_display }}) ===" - if EXTRA_TAGS="$BRANCH_TAG" bash scripts/ci/docker_build_push.sh $NO_CACHE_FLAG ${{ matrix.dockerfile }} "${IMAGE_TAG}" "${CACHE_REF}" $EXTRA_BUILD_ARGS; then + if EXTRA_TAGS="$EXTRA_TAGS" bash scripts/ci/docker_build_push.sh $NO_CACHE_FLAG ${{ matrix.dockerfile }} "${IMAGE_TAG}" "${CACHE_REF}" $EXTRA_BUILD_ARGS; then echo "✅ Docker build 成功" break fi @@ -1040,7 +1050,7 @@ jobs: fi done - echo "${{ matrix.service_display }} image pushed: ${IMAGE_TAG} (+ ${BRANCH_TAG})" + echo "${{ matrix.service_display }} image pushed: ${IMAGE_TAG} (+ ${PUSHED_TAGS_SUMMARY})" - name: Job duration summary if: always() @@ -1244,9 +1254,11 @@ jobs: ACR_PASSWORD: ${{ secrets.ACR_PASSWORD }} run: | set -eux - staging_host="${STAGING_SSH_HOST:-47.98.113.167}" + # CI runner (act_runner) 部署在 116 staging 本机(116.62.226.203 公网 22 未开放), + # 默认走 127.0.0.1:22 本机 SSH,避免跨机网络依赖;可通过 secrets 覆盖。 + staging_host="${STAGING_SSH_HOST:-127.0.0.1}" staging_user="${STAGING_SSH_USER:-root}" - staging_port="${STAGING_SSH_PORT:-22222}" + staging_port="${STAGING_SSH_PORT:-22}" echo "Host: $staging_host" echo "Port: $staging_port" diff --git a/scripts/ci_staging_healthcheck.sh b/scripts/ci_staging_healthcheck.sh index 2954c5cfa..79a63b00e 100644 --- a/scripts/ci_staging_healthcheck.sh +++ b/scripts/ci_staging_healthcheck.sh @@ -17,9 +17,9 @@ # SKIP_NOTIFY - 跳过通知 (true/false, 默认 false) # CI_NOTIFY_WEBHOOK - 通知 Webhook URL # -# STAGING_SSH_HOST - Staging 服务器 SSH 地址 (默认 47.98.113.167) +# STAGING_SSH_HOST - Staging 服务器 SSH 地址 (默认 127.0.0.1,CI runner 在 staging 本机) # STAGING_SSH_USER - SSH 用户名 (默认 root) -# STAGING_SSH_PORT - SSH 端口 (默认 22222) +# STAGING_SSH_PORT - SSH 端口 (默认 22) # STAGING_SSH_KEY - SSH 私钥内容 # REGISTRY_TOKEN - Registry Token(回滚时拉取旧镜像需要) # @@ -40,9 +40,9 @@ HEALTH_CHECK_TIMEOUT="${HEALTH_CHECK_TIMEOUT:-120}" SKIP_ROLLBACK="${SKIP_ROLLBACK:-false}" SKIP_NOTIFY="${SKIP_NOTIFY:-false}" -STAGING_SSH_HOST="${STAGING_SSH_HOST:-47.98.113.167}" +STAGING_SSH_HOST="${STAGING_SSH_HOST:-127.0.0.1}" STAGING_SSH_USER="${STAGING_SSH_USER:-root}" -STAGING_SSH_PORT="${STAGING_SSH_PORT:-22222}" +STAGING_SSH_PORT="${STAGING_SSH_PORT:-22}" REGISTRY="${REGISTRY:-git.xiaoxiajianji.com/xiaoxia/xiaoxia-saas}" REGISTRY_USER="${REGISTRY_USER:-xiaoxia}"