71 lines
2.7 KiB
YAML
71 lines
2.7 KiB
YAML
name: Build and Push Edge Proxy Image
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- cicd-testing # 保持在测试分支触发
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: arm64
|
|
|
|
steps:
|
|
# 步骤 1: 手动检出代码
|
|
# 替代 "uses: actions/checkout@v3"
|
|
# 适用于 Runner 无法访问外网,但可以访问 Gitea 实例的场景
|
|
- name: Manual Checkout
|
|
run: |
|
|
echo "正在手动检出代码..."
|
|
echo "当前工作目录 (pwd):"
|
|
pwd
|
|
|
|
# 1. 清理 Runner 的工作目录 (以防万一)
|
|
# '|| true' 确保在目录为空时命令不会失败
|
|
echo "清理工作目录..."
|
|
rm -rf * .gitea .git || true
|
|
|
|
# 2. 构造带有身份验证的 Git URL
|
|
# 我们将使用您用于 Docker 登录的 gitea.actor 和 secrets.cicd
|
|
|
|
gitea.repository_url = http://192.168.0.75:3000/guanyuankai/bonus-edge-proxy
|
|
|
|
# 转换后 = http://guanyuankai:YOUR_SECRET@192.168.0.75:3000/guanyuankai/bonus-edge-proxy.git
|
|
echo "构造 Git URL..."
|
|
REPO_URL_WITH_CREDS=$(echo "${{ gitea.repository_url }}" | sed "s|://|://${{ gitea.actor }}:${{ secrets.cicd }}@|").git
|
|
|
|
# 3. 执行 Git Clone
|
|
# gitea.ref_name = "cicd-testing" (即您的分支名)
|
|
# --branch 指定分支, '.' 表示克隆到当前目录
|
|
echo "开始克隆分支: ${{ gitea.ref_name }}"
|
|
git clone --quiet --branch ${{ gitea.ref_name }} $REPO_URL_WITH_CREDS .
|
|
|
|
echo "代码检出成功。当前目录内容:"
|
|
ls -la
|
|
echo "---"
|
|
echo "确认 'docker' 目录存在:"
|
|
ls -la docker
|
|
echo "---"
|
|
|
|
# 步骤 2: 登录 Gitea 容器注册表
|
|
- name: Login to Gitea Container Registry
|
|
run: |
|
|
echo ${{ secrets.cicd }} | docker login http://192.168.0.75:3000 -u ${{ gitea.actor }} --password-stdin
|
|
|
|
# 步骤 3: 构建并推送镜像 (保持不变)
|
|
- name: Build and Push Image
|
|
run: |
|
|
# 注意:您的 VERSION 变量现在是分支名 "cicd-testing"
|
|
# 这在测试阶段是OK的。
|
|
VERSION=$(echo ${{ gitea.ref_name }} | sed 's/v//')
|
|
IMAGE_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:${VERSION}"
|
|
LATEST_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:latest"
|
|
|
|
echo "Building and pushing $IMAGE_PATH..."
|
|
|
|
# 这里的路径 -f docker/Dockerfile.prod . 现在是正确的
|
|
docker buildx build \
|
|
--platform linux/arm64 \
|
|
-t $IMAGE_PATH \
|
|
-t $LATEST_PATH \
|
|
-f docker/Dockerfile.prod . \
|
|
--push |