修改为当主分支有推送时自动打包
This commit is contained in:
parent
5a41971a26
commit
a770dfaa86
|
|
@ -1,21 +1,22 @@
|
||||||
name: Build and Push Edge Proxy Image
|
name: Build and Push Edge Proxy Image
|
||||||
|
|
||||||
on:
|
on:
|
||||||
create:
|
push:
|
||||||
tags:
|
branches:
|
||||||
- 'v*.*.*'
|
- main # 1. 触发器:改为 push 到 'main' 分支时运行
|
||||||
|
# (如果您的主分支叫 'master',请改为 'master')
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push:
|
build-and-push:
|
||||||
runs-on: arm-builder
|
runs-on: arm-builder
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# 步骤 1: 手动检出代码 (使用 $GITEA_REF)
|
# 步骤 1: 手动检出代码
|
||||||
- name: Manual Checkout
|
- name: Manual Checkout
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "正在手动检出代码... (生产 Tag 模式 v2)"
|
echo "正在手动检出代码... (Main 分支模式)"
|
||||||
|
|
||||||
REPO_DIR="repo"
|
REPO_DIR="repo"
|
||||||
rm -rf $REPO_DIR
|
rm -rf $REPO_DIR
|
||||||
|
|
@ -24,31 +25,18 @@ jobs:
|
||||||
HARDCODED_REPO_URL="http://192.168.0.75:3000/guanyuankai/bonus-edge-proxy"
|
HARDCODED_REPO_URL="http://192.168.0.75:3000/guanyuankai/bonus-edge-proxy"
|
||||||
|
|
||||||
# ----------------- (关键变更) -----------------
|
# ----------------- (关键变更) -----------------
|
||||||
# 1. 改为检查更底层的 $GITEA_REF
|
# 2. 我们不再需要 Tag,我们总是检出 'main' 分支
|
||||||
echo "检查 Gitea 环境变量 (GITEA_REF)..."
|
HARDCODED_BRANCH="main"
|
||||||
if [ -z "$GITEA_REF" ]; then
|
# (如果您的主分支叫 'master',请改为 'master')
|
||||||
echo "::error::GITEA_REF 环境变量未设置!"
|
|
||||||
echo "::error::此工作流应由一个 Tag 触发。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "GITEA_REF = $GITEA_REF"
|
|
||||||
|
|
||||||
# 2. 从 $GITEA_REF (例如 "refs/tags/v1.1.3") 中提取 Tag 名称
|
|
||||||
TAG_NAME=$(echo $GITEA_REF | sed 's|refs/tags/||')
|
|
||||||
|
|
||||||
if [ -z "$TAG_NAME" ] || [ "$TAG_NAME" = "$GITEA_REF" ]; then
|
|
||||||
echo "::error::无法从 GITEA_REF ($GITEA_REF) 提取 Tag 名称"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "提取的 Tag 名称 = $TAG_NAME"
|
|
||||||
# ----------------- (变更结束) -----------------
|
# ----------------- (变更结束) -----------------
|
||||||
|
|
||||||
|
echo "将要克隆的分支 = $HARDCODED_BRANCH"
|
||||||
|
|
||||||
REPO_URL_AUTH=$(echo "$HARDCODED_REPO_URL" | sed "s|://|://${{ gitea.actor }}:${{ secrets.cicd }}@|")
|
REPO_URL_AUTH=$(echo "$HARDCODED_REPO_URL" | sed "s|://|://${{ gitea.actor }}:${{ secrets.cicd }}@|")
|
||||||
REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git"
|
REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git"
|
||||||
|
|
||||||
# 3. 使用提取的 $TAG_NAME 检出代码
|
echo "开始克隆分支: $HARDCODED_BRANCH 到 $REPO_DIR 目录..."
|
||||||
echo "开始克隆 Tag: $TAG_NAME 到 $REPO_DIR 目录..."
|
git clone --quiet --branch $HARDCODED_BRANCH $REPO_URL_WITH_CREDS $REPO_DIR
|
||||||
git clone --quiet --branch $TAG_NAME $REPO_URL_WITH_CREDS $REPO_DIR
|
|
||||||
|
|
||||||
echo "代码检出成功。"
|
echo "代码检出成功。"
|
||||||
|
|
||||||
|
|
@ -57,39 +45,23 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
echo ${{ secrets.cicd }} | docker login http://192.168.0.75:3000 -u ${{ gitea.actor }} --password-stdin
|
echo ${{ secrets.cicd }} | docker login http://192.168.0.75:3000 -u ${{ gitea.actor }} --password-stdin
|
||||||
|
|
||||||
# 步骤 3: 构建并推送镜像 (使用 $TAG_NAME)
|
# 步骤 3: 构建并推送镜像
|
||||||
- name: Build and Push Image
|
- name: Build and Push Image
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd repo
|
cd repo
|
||||||
|
|
||||||
# 4. (关键) 我们需要重新定义 $TAG_NAME,因为 'run:' 步骤不共享 Shell 变量
|
# ----------------- (关键变更) -----------------
|
||||||
# (或者,我们可以再次执行提取操作)
|
# 3. 我们不再需要版本号,我们只构建 'latest'
|
||||||
|
|
||||||
if [ -z "$GITEA_REF" ]; then
|
|
||||||
echo "::error::GITEA_REF 环境变量在步骤 3 中未找到!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TAG_NAME=$(echo $GITEA_REF | sed 's|refs/tags/||')
|
|
||||||
VERSION=$(echo $TAG_NAME | sed 's/v//')
|
|
||||||
|
|
||||||
if [ -z "$VERSION" ]; then
|
|
||||||
echo "::error::无法从 TAG_NAME ($TAG_NAME) 提取版本号"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
IMAGE_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:${VERSION}"
|
|
||||||
LATEST_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:latest"
|
LATEST_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:latest"
|
||||||
|
# ----------------- (变更结束) -----------------
|
||||||
|
|
||||||
echo "Building and pushing $IMAGE_PATH..."
|
echo "Building and pushing $LATEST_PATH..."
|
||||||
echo "Also pushing $LATEST_PATH..."
|
|
||||||
|
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/arm64 \
|
--platform linux/arm64 \
|
||||||
--load \
|
--load \
|
||||||
-t $IMAGE_PATH \
|
|
||||||
-t $LATEST_PATH \
|
-t $LATEST_PATH \
|
||||||
-f docker/Dockerfile.prod . \
|
-f docker/Dockerfile.prod . \
|
||||||
--push
|
--push
|
||||||
Loading…
Reference in New Issue