name: 简单测试 on: push: pull_request: jobs: test: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v4 - name: 输出所有Gitea Actions变量 (JSON格式) run: | echo "🔍 正在输出所有Gitea Actions相关的环境变量..." # 查找所有以 GITEA_ 开头的环境变量 # 这些变量对应于 ${{ gitea. }} # 使用 jq 将 key=value 格式转换为 JSON 对象 # -R: 读取原始字符串输入 (每行一个变量) # split("="; 2): 在第一个等号处分割字符串,最多分割成两部分 (key 和 value) # jq -s: 读取所有输入并将其作为一个整体处理 (一个数组) # map({(.[0]): .[1]}): 将数组中的每个元素 (例如 ["GITEA_SHA", "abcdef"]) 转换为一个 JSON 对象 (例如 {"GITEA_SHA": "abcdef"}) # add: 合并数组中的所有 JSON 对象成一个大的 JSON 对象 env | grep ^GITEA_ | jq -R 'split("="; 2)' | jq -s 'map({(.[0]): .[1]}) | add' echo "✅ Gitea Actions变量输出完成。" - name: 登录到Gitea Container Registry run: | echo "🔐 登录到Gitea Registry..." # 获取registry地址 REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') cat /etc/docker/daemon.json || echo 'cat /etc/docker/daemon.json 失败' 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应用镜像..." ZXC="${{ gitea.repository }}" echo "📦 镜像名称: $ZXC" # 获取仓库名称并转换为小写 LOWER_REPO_NAME=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]') IMAGE_TAG="latest" COMMIT_SHA="${{ gitea.sha }}" echo "📦 镜像名称: $LOWER_REPO_NAME" echo "🏷️ 镜像标签: $IMAGE_TAG" echo "📋 提交SHA: $COMMIT_SHA" # 构造镜像 docker build -t "$LOWER_REPO_NAME:$IMAGE_TAG" -t "$LOWER_REPO_NAME:$COMMIT_SHA" . echo "✅ Docker镜像构造完成!" # 可以将此信息改为更通用 # - name: 推送Docker镜像 # run: | # echo "🚀 推送Docker镜像到Gitea registry..." # # 获取仓库名称并转换为小写 # REPO_NAME=${{ gitea.repository }} # LOWER_REPO_NAME=$(echo "$REPO_NAME" | tr '[:upper:]' '[:lower:]') # # 设置镜像标签 # REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') # REPO_OWNER="${{ gitea.repository_owner }}" # REPO_OWNER_LOWER="${REPO_OWNER,,}" # IMAGE_NAME="$REGISTRY_HOST/$REPO_OWNER_LOWER/$LOWER_REPO_NAME" # IMAGE_TAG="latest" # COMMIT_SHA="${{ gitea.sha }}" # # 推送镜像 # docker push "$IMAGE_NAME:$IMAGE_TAG" # docker push "$IMAGE_NAME:$COMMIT_SHA" # echo "✅ Docker镜像推送完成!" # echo "🎉 镜像已推送到: $IMAGE_NAME:$IMAGE_TAG" # echo "🎉 镜像已推送到: $IMAGE_NAME:$COMMIT_SHA"