Files
action_test/.gitea/workflows/test.yml
T
kagami 1374281c52
简单测试 / test (push) Failing after 10s
sss
2025-07-12 17:21:44 +08:00

157 lines
4.6 KiB
YAML

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: 配置Docker不安全registry
run: |
echo "🔧 配置Docker允许不安全的registry..."
# 获取registry地址
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
echo "📡 Registry地址: $REGISTRY_HOST"
# # 停止Docker服务
# echo "🔧 停止Docker服务..1"
# sudo systemctl stop docker
# echo "🔧 停止Docker服务..2"
# sudo service docker stop
# 配置daemon.json
# sudo mkdir -p /etc/docker
# sudo tee /etc/docker/daemon.json <<EOF
# {
# "insecure-registries": ["$REGISTRY_HOST"],
# "registry-mirrors": []
# }
# EOF
# cat /etc/docker/daemon.json
# # 启动Docker服务
# echo "🔧 启动Docker服务..."
# sudo systemctl start docker
# sudo service docker start
# 等待Docker启动
# sleep 5
# 验证Docker状态
# docker info | grep -i insecure || docker ps || true
echo "✅ Docker配置完成!"
- 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 "✅ 镜像测试完成!"