Files
action_test/.gitea/workflows/test.yml
2025-07-12 14:12:08 +08:00

133 lines
4.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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服务
sudo systemctl stop docker || sudo service docker stop || true
# 配置daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["$REGISTRY_HOST"],
"registry-mirrors": []
}
EOF
# 启动Docker服务
sudo systemctl start docker || sudo service docker start || true
# 等待Docker启动
sleep 10
# 验证Docker状态
docker info | grep -i insecure || true
echo "✅ Docker配置完成"
- name: 登录到Gitea Container Registry
run: |
echo "🔐 登录到Gitea Container Registry..."
# 获取registry地址
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
echo "📡 Registry地址: $REGISTRY_HOST"
echo "👤 用户名: ${{ gitea.actor }}"
# 使用HTTP协议登录
echo "${{ gitea.token }}" | 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\?://||')
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_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\?://||')
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/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\?://||')
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
IMAGE_TAG="latest"
# 运行镜像进行测试
docker run -d --name test-container -p 3000:3000 "$IMAGE_NAME:$IMAGE_TAG"
# 等待容器启动
sleep 5
# 测试健康检查
echo "🔍 测试应用健康状态..."
curl -f http://localhost:3000/health || exit 1
# 测试主页
echo "🔍 测试应用主页..."
curl -f http://localhost:3000/ || exit 1
# 停止并删除测试容器
docker stop test-container
docker rm test-container
echo "✅ 镜像测试完成!"