Files
action_test/.gitea/workflows/test.yml
T
kagami f1d2bd9780
简单测试 / test (push) Successful in 14s
优化镜像打包log2
2025-07-12 21:40:55 +08:00

97 lines
3.2 KiB
YAML

name: 简单测试
on:
push:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 计算并设置环境变量
run: |
echo "📦 计算并设置后续步骤所需的环境变量..."
# 计算 REPO_NAME
REPOSITORY="${{ gitea.repository }}"
echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV
# 使用 bash 的字符串替换功能截取,确保兼容性
REPO_NAME=$(echo "${REPOSITORY#*/}" | tr '[:upper:]' '[:lower:]') # 从第一个 / 后面开始截取
echo "➡️ 计算出的仓库名称: $REPO_NAME"
# 将 REPO_NAME 写入 $GITHUB_ENV,使其对后续步骤可用
echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV
# 计算 REGISTRY_HOST,使用 sed 移除 http:// 或 https://
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
echo "➡️ 计算出的Registry地址: $REGISTRY_HOST"
# 将 REGISTRY_HOST 写入 $GITHUB_ENV,使其对后续步骤可用
echo "REGISTRY_HOST=$REGISTRY_HOST" >> $GITHUB_ENV
echo "✅ 环境变量设置完成!"
- name: 登录到Gitea Container Registry
run: |
echo "🔐 登录到Gitea Registry..."
echo "📡 Registry地址: $REGISTRY_HOST"
echo "👤 用户名: ${{ gitea.actor }}"
# 使用HTTP协议登录
echo "${{ secrets.GITEAS_PAT }}" | docker login $REGISTRY_HOST -u "${{ gitea.actor }}" --password-stdin
echo "✅ 登录成功!"
- name: 构造Docker镜像
run: |
echo "🐳 构造Node.js Hello World应用镜像..."
# echo "📦 镜像名称: $REPOSITORY"
# 构造镜像
BUILD_IMAGE_CMD="docker build -t $REPOSITORY:latest ."
echo "📦 构造Docker镜像命令: $BUILD_IMAGE_CMD"
eval $BUILD_IMAGE_CMD
echo "✅ Docker镜像构造完成!" # 可以将此信息改为更通用
- name: 推送Docker镜像
run: |
echo "🚀 推送Docker镜像到Gitea registry..."
IMAGE_TAG="latest"
# COMMIT_SHA="${{ gitea.sha }}"
# echo "📋 提交SHA: $COMMIT_SHA"
#镜像名称
IMAGE_NAME="$REGISTRY_HOST/$REPOSITORY:$IMAGE_TAG"
# echo "🏷️ 镜像名称+标签: $REPOSITORY:$IMAGE_TAG"
# echo "🏷️ 镜像推送路径: $IMAGE_NAME"
#打标签
echo "🔍 打标签 :docker tag $REPOSITORY:$IMAGE_TAG $IMAGE_NAME"
TAG_IMAGE_CMD="docker tag $REPOSITORY:$IMAGE_TAG $IMAGE_NAME"
echo "🏷️ 打标签命令: $TAG_IMAGE_CMD"
eval $TAG_IMAGE_CMD
#推送镜像
echo "🔍 推送镜像 :docker push $IMAGE_NAME"
PUSH_IMAGE_CMD="docker push $IMAGE_NAME"
eval $PUSH_IMAGE_CMD
echo "✅ Docker镜像推送完成!"
- name: 清理Docker镜像
run: |
CLEAR_IMAGE_CMD="docker rmi $REPOSITORY:latest"
echo "🔍 清理Docker镜像命令: $CLEAR_IMAGE_CMD"
eval $CLEAR_IMAGE_CMD
echo "✅ Docker镜像清理完成!"