ci: 添加 Gitea Actions 示例工作流
- 新增 ci.yaml 文件,定义 Gitea Actions 示例
This commit is contained in:
@@ -14,64 +14,46 @@ jobs:
|
||||
run: |
|
||||
echo "📥 检出代码到工作目录..."
|
||||
echo "当前目录: $(pwd)"
|
||||
echo "工作目录: ${{ gitea.workspace }}"
|
||||
echo "仓库: ${{ gitea.repository }}"
|
||||
echo "分支: ${{ gitea.ref }}"
|
||||
echo "提交: ${{ gitea.sha }}"
|
||||
|
||||
# 检查是否已经有代码
|
||||
if [ -f "go.mod" ]; then
|
||||
echo "✅ 代码已存在,go.mod文件找到"
|
||||
else
|
||||
echo "📥 需要检出代码..."
|
||||
# 解析分支名
|
||||
BRANCH_NAME=$(echo "${{ gitea.ref }}" | sed 's#refs/heads/##')
|
||||
|
||||
# 如果工作目录存在,使用它
|
||||
if [ -n "${{ gitea.workspace }}" ] && [ -d "${{ gitea.workspace }}" ]; then
|
||||
echo "切换到工作目录: ${{ gitea.workspace }}"
|
||||
cd "${{ gitea.workspace }}"
|
||||
else
|
||||
echo "工作目录不存在,尝试检出到当前目录"
|
||||
# 尝试从git仓库检出
|
||||
if [ -n "${{ gitea.repository }}" ]; then
|
||||
echo "检出仓库: ${{ gitea.repository }}"
|
||||
git clone "https://gitea.com/${{ gitea.repository }}.git" .
|
||||
# 切换到指定分支
|
||||
if [ -n "${{ gitea.ref }}" ]; then
|
||||
BRANCH_NAME=$(echo "${{ gitea.ref }}" | sed 's/refs\/heads\///')
|
||||
echo "切换到分支: $BRANCH_NAME"
|
||||
git checkout "$BRANCH_NAME"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# 再次检查
|
||||
if [ -f "go.mod" ]; then
|
||||
echo "✅ 代码检出成功"
|
||||
else
|
||||
echo "❌ 代码检出失败"
|
||||
echo "当前目录内容:"
|
||||
ls -la
|
||||
exit 1
|
||||
fi
|
||||
# 拉取代码(使用token鉴权)
|
||||
git clone --depth=1 -b "$BRANCH_NAME" "http://1c18ee1ab9a9cb291506d0c5c016a33be7d59e8c:x-oauth-basic@gitea.htoop.cn/${{ gitea.repository }}.git" .
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ 代码检出失败"
|
||||
exit 1
|
||||
fi
|
||||
echo "最终工作目录: $(pwd)"
|
||||
echo "目录内容:"
|
||||
|
||||
# 校验分支
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [ "$CURRENT_BRANCH" != "$BRANCH_NAME" ]; then
|
||||
echo "❌ 检出分支与预期不符: $CURRENT_BRANCH != $BRANCH_NAME"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 校验提交
|
||||
CURRENT_COMMIT=$(git rev-parse HEAD)
|
||||
if [ -n "${{ gitea.sha }}" ] && [ "$CURRENT_COMMIT" != "${{ gitea.sha }}" ]; then
|
||||
echo "❌ 检出提交与预期不符: $CURRENT_COMMIT != ${{ gitea.sha }}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ 代码检出成功,分支和提交校验通过"
|
||||
ls -la
|
||||
|
||||
- name: 安装Go环境
|
||||
run: |
|
||||
echo "🔧 安装Go 1.22环境..."
|
||||
|
||||
# 检查是否已安装Go
|
||||
if command -v go &> /dev/null; then
|
||||
echo "✅ Go已安装: $(go version)"
|
||||
else
|
||||
echo "📥 下载并安装Go..."
|
||||
|
||||
# 下载Go 1.22 - 使用国内镜像
|
||||
GO_VERSION="1.22.0"
|
||||
GO_ARCH="linux-amd64"
|
||||
|
||||
# 尝试多个国内镜像源
|
||||
MIRRORS=(
|
||||
"https://golang.google.cn/dl/go${GO_VERSION}.${GO_ARCH}.tar.gz"
|
||||
"https://mirrors.aliyun.com/golang/go${GO_VERSION}.${GO_ARCH}.tar.gz"
|
||||
@@ -79,9 +61,7 @@ jobs:
|
||||
"https://mirrors.tencent.com/go/go${GO_VERSION}.${GO_ARCH}.tar.gz"
|
||||
"https://go.dev/dl/go${GO_VERSION}.${GO_ARCH}.tar.gz"
|
||||
)
|
||||
|
||||
DOWNLOAD_SUCCESS=false
|
||||
|
||||
for mirror in "${MIRRORS[@]}"; do
|
||||
echo "尝试从镜像下载: $mirror"
|
||||
if wget -q --timeout=30 --tries=3 "$mirror" -O go.tar.gz; then
|
||||
@@ -93,28 +73,18 @@ jobs:
|
||||
continue
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$DOWNLOAD_SUCCESS" = false ]; then
|
||||
echo "❌ 所有镜像源下载失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 解压到/usr/local
|
||||
echo "解压Go到/usr/local..."
|
||||
tar -C /usr/local -xzf go.tar.gz
|
||||
|
||||
# 设置环境变量
|
||||
export PATH=$PATH:/usr/local/go/bin
|
||||
export GOROOT=/usr/local/go
|
||||
export GOPATH=$HOME/go
|
||||
|
||||
# 验证安装
|
||||
echo "验证Go安装..."
|
||||
/usr/local/go/bin/go version
|
||||
|
||||
# 清理下载文件
|
||||
rm go.tar.gz
|
||||
|
||||
echo "✅ Go安装完成"
|
||||
fi
|
||||
|
||||
@@ -130,13 +100,9 @@ jobs:
|
||||
run: |
|
||||
echo "📦 下载Go模块依赖..."
|
||||
export PATH=$PATH:/usr/local/go/bin
|
||||
|
||||
# 显示当前目录和文件
|
||||
echo "当前工作目录: $(pwd)"
|
||||
echo "目录内容:"
|
||||
ls -la
|
||||
|
||||
# 检查go.mod文件
|
||||
if [ -f "go.mod" ]; then
|
||||
echo "✅ 找到go.mod文件"
|
||||
cat go.mod | head -5
|
||||
@@ -144,20 +110,13 @@ jobs:
|
||||
echo "❌ 未找到go.mod文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 设置Go模块环境
|
||||
export GO111MODULE=on
|
||||
export GOPROXY=https://goproxy.cn,direct
|
||||
|
||||
echo "Go环境变量:"
|
||||
echo "GOPROXY: $GOPROXY"
|
||||
echo "GO111MODULE: $GO111MODULE"
|
||||
|
||||
# 下载依赖
|
||||
go mod download
|
||||
echo "✅ 依赖下载完成"
|
||||
|
||||
# 显示下载的模块
|
||||
echo "已下载的模块:"
|
||||
go list -m all | head -10
|
||||
|
||||
@@ -198,8 +157,6 @@ jobs:
|
||||
echo "运行器操作系统: ${{ runner.os }}"
|
||||
echo "工作目录: ${{ gitea.workspace }}"
|
||||
echo "任务状态: ${{ job.status }}"
|
||||
|
||||
# 创建部署包
|
||||
mkdir -p deploy
|
||||
cp epic-game-service deploy/
|
||||
cp -r manifest deploy/
|
||||
|
||||
Reference in New Issue
Block a user