46 lines
1.6 KiB
Bash
46 lines
1.6 KiB
Bash
#!/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}"
|