Files
danyang-match/infrastructure/scripts/ci-build.sh
T

46 lines
1.6 KiB
Bash
Raw Normal View History

2026-09-09 22:05:00 +08:00
#!/bin/bash
# ============================================
# 丹阳公益婚恋服务平台 — CI/CD 触发脚本
# ============================================
# 由 GitHub Actions 调用,执行以下步骤:
# 1. 构建 Backend Docker 镜像
# 2. 构建 Admin Web Docker 镜像
# 3. 推送镜像到 Docker Hub / 私有仓库
# 4. 触发远程部署
# ============================================
set -euo pipefail
IMAGE_REPO="${DOCKER_REGISTRY:-registry.cn-hangzhou.aliyuncs.com/danyang-match}"
VERSION="${GITHUB_SHA:-latest}"
BRANCH="${GITHUB_REF_NAME:-main}"
echo "============================================"
echo " 丹阳公益婚恋平台 — CI 构建"
echo " 分支: ${BRANCH} | 版本: ${VERSION}"
echo "============================================"
# 构建 Backend 镜像
echo "[1/3] 构建 Backend 镜像..."
docker build -t "${IMAGE_REPO}/backend:${VERSION}" -f backend/Dockerfile backend/
docker tag "${IMAGE_REPO}/backend:${VERSION}" "${IMAGE_REPO}/backend:latest"
# 构建 Admin Web 镜像
echo "[2/3] 构建 Admin Web 镜像..."
docker build -t "${IMAGE_REPO}/admin:${VERSION}" -f admin-web/Dockerfile admin-web/
docker tag "${IMAGE_REPO}/admin:${VERSION}" "${IMAGE_REPO}/admin:latest"
# 推送镜像
if [ "${BRANCH}" = "main" ] || [ "${BRANCH}" = "master" ]; then
echo "[3/3] 推送镜像到仓库..."
docker push "${IMAGE_REPO}/backend:${VERSION}"
docker push "${IMAGE_REPO}/backend:latest"
docker push "${IMAGE_REPO}/admin:${VERSION}"
docker push "${IMAGE_REPO}/admin:latest"
echo "✅ 镜像推送完成"
else
echo "⏭ 非主分支,跳过推送"
fi
echo ""
echo "✅ CI 完成!版本: ${VERSION}"