name: 简单测试 on: push: pull_request: jobs: test: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v4 - name: 基本测试 run: | echo "🚀 开始测试..." echo "📁 当前目录: $(pwd)" echo "📋 文件列表:" ls -la echo "✅ 测试完成!" - name: Debug Network run: | echo "Checking network from inside the job container..." cat /etc/resolv.conf ping -c 4 gitea # 尝试ping gitea服务名 nslookup gitea # 尝试解析gitea服务名 curl -v http://gitea:3000/v2/ # 尝试访问registry的API端点 - name: 登录到Gitea Container Registry run: | echo "🔐 登录到Gitea Container 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 }}" # echo "token: ${{ gitea.token }};actor: ${{ 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应用镜像..." # 设置镜像标签 REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') OWNER=${{ gitea.repository_owner }} LOWER_OWNER=$(echo "$OWNER" | tr '[:upper:]' '[:lower:]') IMAGE_NAME="$REGISTRY_HOST/$LOWER_OWNER/hello-world-app" IMAGE_TAG="latest" COMMIT_SHA="${{ gitea.sha }}" echo "📦 镜像名称: $IMAGE_NAME" echo "🏷️ 镜像标签: $IMAGE_TAG" echo "📋 提交SHA: $COMMIT_SHA" # 构造镜像 docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:$COMMIT_SHA" . echo "✅ Node.js Hello World镜像构造完成!" - name: 推送Docker镜像 run: | echo "🚀 推送Docker镜像到Gitea registry..." # 设置镜像标签 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/hello-world-app" 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" - name: 测试镜像运行 run: | echo "🧪 测试构造的镜像..." 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/hello-world-app" IMAGE_TAG="latest" # 运行镜像进行测试 docker run -d --name test-container -p 3901:3000 "$IMAGE_NAME:$IMAGE_TAG" # 等待容器启动 sleep 5 # 测试健康检查 echo "🔍 测试应用健康状态..." curl -f http://192.168.1.200:3901/health || exit 1 # 测试主页 echo "🔍 测试应用主页..." curl -f http://192.168.1.200:3901/ || exit 1 # 停止并删除测试容器 docker stop test-container docker rm test-container echo "✅ 镜像测试完成!"