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镜像清理完成!"