Compare commits
70 Commits
9a03d57c55
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 168208c7bd | |||
| 8b6d765f8c | |||
| 1645573e8b | |||
| bb3c438b58 | |||
| 071248596c | |||
| 4de2acea6a | |||
| b5c1870011 | |||
| 228ff1cf33 | |||
| a6ab11f45a | |||
| 7609791a68 | |||
| 2806775fe1 | |||
| 32dc352b80 | |||
| e207ba67ea | |||
| 57bccc607a | |||
| 65ae056628 | |||
| 6c16385769 | |||
| b35b9253ce | |||
| 370e9c996a | |||
| 02e47e6bc4 | |||
| 3d1d0e599f | |||
| f1d2bd9780 | |||
| e50810cc41 | |||
| 8d23003c8e | |||
| 23b4f615cc | |||
| 932c5476d0 | |||
| 5291f21df0 | |||
| 70353d826d | |||
| 4d63d7dbb3 | |||
| 6b06318636 | |||
| d3871f4ad7 | |||
| 773d7ac7a5 | |||
| 187492d64c | |||
| 0824e0d96d | |||
| c41de67c2a | |||
| e4aaa10650 | |||
| 3f553e22f5 | |||
| d3a21f0735 | |||
| 7838ef5cdf | |||
| 8eaebe3da3 | |||
| ec6040b349 | |||
| 1f7a2008a7 | |||
| 7700d4395f | |||
| 471ed73853 | |||
| 2913fe38ef | |||
| e1d2fa993b | |||
| 5f4c6b7f30 | |||
| 33be399d7d | |||
| 8cbf79b5bf | |||
| 8ed0d974e1 | |||
| 21f5eefac8 | |||
| ffc441f6c2 | |||
| 421570648a | |||
| f176b395e6 | |||
| 0125105b36 | |||
| 83eb229754 | |||
| 1374281c52 | |||
| b53bf6366b | |||
| 31d063c02f | |||
| b9962362b4 | |||
| 8fb8f5e90c | |||
| 2e117b3786 | |||
| 7263dc4747 | |||
| a3d0fd833f | |||
| 622c1de8bd | |||
| 4d6c23f4fe | |||
| 7d60e7834b | |||
| f9a5842ea3 | |||
| 5f7dc383f4 | |||
| ade8723f9a | |||
| 487ae9cb46 |
@ -12,132 +12,89 @@ jobs:
|
||||
- name: 检出代码
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: 基本测试
|
||||
- name: 计算并设置环境变量
|
||||
run: |
|
||||
echo "🚀 开始测试..."
|
||||
echo "📁 当前目录: $(pwd)"
|
||||
echo "📋 文件列表:"
|
||||
ls -la
|
||||
echo "✅ 测试完成!"
|
||||
echo "📦 计算并设置后续步骤所需的环境变量..."
|
||||
# 计算 REPO_NAME
|
||||
REPOSITORY="${{ gitea.repository }}"
|
||||
echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV
|
||||
|
||||
- name: 配置Docker不安全registry
|
||||
run: |
|
||||
echo "🔧 配置Docker允许不安全的registry..."
|
||||
# 使用 bash 的字符串替换功能截取,确保兼容性
|
||||
REPO_NAME=$(echo "${REPOSITORY#*/}" | tr '[:upper:]' '[:lower:]') # 从第一个 / 后面开始截取
|
||||
echo "➡️ 计算出的仓库名称: $REPO_NAME"
|
||||
|
||||
# 获取registry地址
|
||||
# 将 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"
|
||||
echo "➡️ 计算出的Registry地址: $REGISTRY_HOST"
|
||||
|
||||
# 停止Docker服务
|
||||
echo "🔧 停止Docker服务..1"
|
||||
sudo service docker stop
|
||||
echo "🔧 停止Docker服务..2"
|
||||
sudo systemctl stop docker
|
||||
|
||||
# 将 REGISTRY_HOST 写入 $GITHUB_ENV,使其对后续步骤可用
|
||||
echo "REGISTRY_HOST=$REGISTRY_HOST" >> $GITHUB_ENV
|
||||
|
||||
# 配置daemon.json
|
||||
sudo mkdir -p /etc/docker
|
||||
sudo tee /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"insecure-registries": ["$REGISTRY_HOST"],
|
||||
"registry-mirrors": []
|
||||
}
|
||||
EOF
|
||||
|
||||
# 启动Docker服务
|
||||
echo "🔧 启动Docker服务..."
|
||||
sudo systemctl start docker
|
||||
sudo service docker start
|
||||
|
||||
# 等待Docker启动
|
||||
sleep 10
|
||||
|
||||
# 验证Docker状态
|
||||
# docker info | grep -i insecure || true
|
||||
|
||||
echo "✅ Docker配置完成!"
|
||||
#远程镜像路径
|
||||
REMOTE_IMAGE_PATH="$REGISTRY_HOST/$REPOSITORY"
|
||||
echo "REMOTE_IMAGE_PATH=$REMOTE_IMAGE_PATH" >> $GITHUB_ENV
|
||||
|
||||
echo "✅ 环境变量设置完成!"
|
||||
|
||||
- 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 "🔐 登录到Gitea Registry..."
|
||||
echo "📡 Registry地址: $REGISTRY_HOST"
|
||||
echo "👤 用户名: ${{ gitea.actor }}"
|
||||
|
||||
# 使用HTTP协议登录
|
||||
echo "${{ gitea.token }}" | docker login $REGISTRY_HOST -u "${{ gitea.actor }}" --password-stdin
|
||||
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镜像构造完成!"
|
||||
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..."
|
||||
|
||||
# 设置镜像标签
|
||||
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 }}"
|
||||
#远程镜像路径
|
||||
IMAGE_PATH="$REGISTRY_HOST/$REPOSITORY"
|
||||
echo "🔍 远程镜像路径: $IMAGE_PATH"
|
||||
|
||||
# 推送镜像
|
||||
docker push "$IMAGE_NAME:$IMAGE_TAG"
|
||||
docker push "$IMAGE_NAME:$COMMIT_SHA"
|
||||
#打SHA标签
|
||||
TAG_IMAGE_CMD="docker tag $REPOSITORY $IMAGE_PATH:${{ gitea.sha }}"
|
||||
echo "🏷️ 打标签命令: $TAG_IMAGE_CMD" && eval $TAG_IMAGE_CMD
|
||||
|
||||
#推送SHA标签
|
||||
PUSH_IMAGE_CMD="docker push $IMAGE_PATH:${{ gitea.sha }}"
|
||||
echo "🔍 推送SHA标签:$PUSH_IMAGE_CMD" && eval $PUSH_IMAGE_CMD
|
||||
|
||||
sleep 1
|
||||
|
||||
#打latest标签
|
||||
TAG_IMAGE_CMD="docker tag $REPOSITORY $IMAGE_PATH:latest"
|
||||
echo "🏷️ 打标签命令: $TAG_IMAGE_CMD" && eval $TAG_IMAGE_CMD
|
||||
|
||||
#推送latest镜像
|
||||
PUSH_IMAGE_CMD="docker push $IMAGE_PATH:latest"
|
||||
echo "🔍 推送镜像 :$PUSH_IMAGE_CMD" && eval $PUSH_IMAGE_CMD
|
||||
|
||||
echo "✅ Docker镜像推送完成!"
|
||||
echo "🎉 镜像已推送到: $IMAGE_NAME:$IMAGE_TAG"
|
||||
echo "🎉 镜像已推送到: $IMAGE_NAME:$COMMIT_SHA"
|
||||
|
||||
- name: 测试镜像运行
|
||||
- name: 清理Docker镜像
|
||||
run: |
|
||||
echo "🧪 测试构造的镜像..."
|
||||
echo "🔍 获取 kagami/action_test 镜像 ID..."
|
||||
IMAGE_ID=$(docker images -q $REPOSITORY)
|
||||
|
||||
REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||')
|
||||
IMAGE_NAME="$REGISTRY_HOST/${{ gitea.repository_owner }}/hello-world-app"
|
||||
IMAGE_TAG="latest"
|
||||
echo "🔍 获取 kagami/action_test 镜像 ID: $IMAGE_ID"
|
||||
|
||||
# 运行镜像进行测试
|
||||
docker run -d --name test-container -p 3000:3000 "$IMAGE_NAME:$IMAGE_TAG"
|
||||
docker rmi -f "$IMAGE_ID" || true
|
||||
|
||||
# 等待容器启动
|
||||
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 "✅ 镜像测试完成!"
|
||||
echo "✅ Docker镜像清理完成!"
|
||||
|
||||
2
config.yml
Normal file
2
config.yml
Normal file
@ -0,0 +1,2 @@
|
||||
container:
|
||||
network: "t1"
|
||||
Reference in New Issue
Block a user