65 lines
2.2 KiB
YAML
65 lines
2.2 KiB
YAML
jobs:
|
|
build-and-push:
|
|
runs-on: arm64
|
|
|
|
steps:
|
|
# 步骤 1: 手动检出代码
|
|
- name: Manual Checkout
|
|
run: |
|
|
set -e
|
|
|
|
echo "正在手动检出代码..."
|
|
|
|
REPO_DIR="repo"
|
|
rm -rf $REPO_DIR
|
|
mkdir $REPO_DIR
|
|
|
|
echo "检查 Gitea 环境变量..."
|
|
if [ -z "$GITEA_REPOSITORY_URL" ] || [ -z "$GITEA_ACTOR" ] || [ -z "$GITEA_REF_NAME" ]; then
|
|
echo "::error::一个或多个 Gitea 环境变量未设置!"
|
|
exit 1
|
|
fi
|
|
|
|
REPO_URL_AUTH=$(echo "$GITEA_REPOSITORY_URL" | sed "s|://|://${GITEA_ACTOR}:${{ secrets.cicd }}@|")
|
|
REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git"
|
|
|
|
echo "开始克隆分支 $GITEA_REF_NAME 到 $REPO_DIR 目录..."
|
|
git clone --quiet --branch $GITEA_REF_NAME $REPO_URL_WITH_CREDS $REPO_DIR
|
|
|
|
echo "代码检出成功。检查 './repo' 目录内容:"
|
|
ls -la $REPO_DIR
|
|
echo "---"
|
|
echo "确认 'docker' 目录存在于 './repo' 内部:"
|
|
ls -la $REPO_DIR/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: | # <--- 修复:这里也必须有 '|'
|
|
set -e
|
|
|
|
echo "切换工作目录到 ./repo"
|
|
cd repo
|
|
|
|
echo "已成功切换目录。当前工作目录 (pwd):"
|
|
pwd
|
|
echo "当前目录内容 (ls -la):"
|
|
ls -la
|
|
|
|
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..."
|
|
|
|
docker buildx build \
|
|
--platform linux/arm64 \
|
|
-t $IMAGE_PATH \
|
|
-t $LATEST_PATH \
|
|
-f docker/Dockerfile.prod . \
|
|
--push |