修改报错
This commit is contained in:
parent
c68d63959c
commit
ab99ae7641
60
Jenkinsfile
vendored
60
Jenkinsfile
vendored
@ -101,8 +101,8 @@ pipeline {
|
|||||||
else
|
else
|
||||||
echo "⚠️ 直接挂载失败,使用容器复制方式"
|
echo "⚠️ 直接挂载失败,使用容器复制方式"
|
||||||
|
|
||||||
# 创建临时容器并复制文件
|
# 创建临时容器并复制文件(设置正确的工作目录)
|
||||||
CONTAINER_ID=$(docker create golang:1.21-alpine sh -c "
|
CONTAINER_ID=$(docker create -w /app golang:1.21-alpine sh -c "
|
||||||
echo '下载依赖...'
|
echo '下载依赖...'
|
||||||
go mod download
|
go mod download
|
||||||
|
|
||||||
@ -113,10 +113,10 @@ pipeline {
|
|||||||
go mod tidy
|
go mod tidy
|
||||||
")
|
")
|
||||||
|
|
||||||
# 复制所有文件到容器
|
# 复制所有文件到容器的/app目录
|
||||||
docker cp . $CONTAINER_ID:/app
|
docker cp . $CONTAINER_ID:/app
|
||||||
|
|
||||||
# 设置工作目录并运行
|
# 启动容器执行Go命令
|
||||||
docker start -a $CONTAINER_ID
|
docker start -a $CONTAINER_ID
|
||||||
|
|
||||||
# 复制结果文件回来
|
# 复制结果文件回来
|
||||||
@ -138,8 +138,8 @@ pipeline {
|
|||||||
sh '''
|
sh '''
|
||||||
echo "使用Docker容器进行代码检查..."
|
echo "使用Docker容器进行代码检查..."
|
||||||
|
|
||||||
# 使用简化的挂载方式
|
# 创建容器并设置工作目录
|
||||||
docker run --rm -v "${WORKSPACE}":/workspace -w /workspace golang:1.21-alpine sh -c "
|
CONTAINER_ID=$(docker create -w /app golang:1.21-alpine sh -c "
|
||||||
echo '运行go vet...'
|
echo '运行go vet...'
|
||||||
go vet ./...
|
go vet ./...
|
||||||
|
|
||||||
@ -150,7 +150,16 @@ pipeline {
|
|||||||
echo \$UNFORMATTED
|
echo \$UNFORMATTED
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
"
|
")
|
||||||
|
|
||||||
|
# 复制文件到容器
|
||||||
|
docker cp . $CONTAINER_ID:/app
|
||||||
|
|
||||||
|
# 执行代码检查
|
||||||
|
docker start -a $CONTAINER_ID
|
||||||
|
|
||||||
|
# 清理容器
|
||||||
|
docker rm $CONTAINER_ID
|
||||||
|
|
||||||
echo "✅ 代码检查通过"
|
echo "✅ 代码检查通过"
|
||||||
'''
|
'''
|
||||||
@ -162,7 +171,9 @@ pipeline {
|
|||||||
echo '🧪 运行单元测试...'
|
echo '🧪 运行单元测试...'
|
||||||
sh '''
|
sh '''
|
||||||
echo "使用Docker容器运行测试..."
|
echo "使用Docker容器运行测试..."
|
||||||
docker run --rm -v "${WORKSPACE}":/workspace -w /workspace golang:1.21-alpine sh -c "
|
|
||||||
|
# 创建容器并设置工作目录
|
||||||
|
CONTAINER_ID=$(docker create -w /app golang:1.21-alpine sh -c "
|
||||||
echo '运行测试并生成覆盖率报告...'
|
echo '运行测试并生成覆盖率报告...'
|
||||||
go test -v -race -coverprofile=coverage.out -covermode=atomic ./... || echo '测试执行完成(可能有测试失败)'
|
go test -v -race -coverprofile=coverage.out -covermode=atomic ./... || echo '测试执行完成(可能有测试失败)'
|
||||||
|
|
||||||
@ -174,7 +185,20 @@ pipeline {
|
|||||||
else
|
else
|
||||||
echo '⚠️ coverage.out文件不存在,跳过覆盖率报告生成'
|
echo '⚠️ coverage.out文件不存在,跳过覆盖率报告生成'
|
||||||
fi
|
fi
|
||||||
"
|
")
|
||||||
|
|
||||||
|
# 复制文件到容器
|
||||||
|
docker cp . $CONTAINER_ID:/app
|
||||||
|
|
||||||
|
# 执行测试
|
||||||
|
docker start -a $CONTAINER_ID
|
||||||
|
|
||||||
|
# 复制测试结果文件回来
|
||||||
|
docker cp $CONTAINER_ID:/app/coverage.out . || true
|
||||||
|
docker cp $CONTAINER_ID:/app/coverage.html . || true
|
||||||
|
|
||||||
|
# 清理容器
|
||||||
|
docker rm $CONTAINER_ID
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
@ -239,7 +263,9 @@ EOF
|
|||||||
echo '🔨 编译Go应用程序...'
|
echo '🔨 编译Go应用程序...'
|
||||||
sh '''
|
sh '''
|
||||||
echo "使用Docker容器编译Go应用..."
|
echo "使用Docker容器编译Go应用..."
|
||||||
docker run --rm -v "${WORKSPACE}":/workspace -w /workspace golang:1.21-alpine sh -c "
|
|
||||||
|
# 创建容器并设置工作目录
|
||||||
|
CONTAINER_ID=$(docker create -w /app golang:1.21-alpine sh -c "
|
||||||
echo '开始编译...'
|
echo '开始编译...'
|
||||||
CGO_ENABLED=0 GOOS=linux go build \\
|
CGO_ENABLED=0 GOOS=linux go build \\
|
||||||
-ldflags='-w -s -X main.gitCommit=${GIT_COMMIT_SHORT}' \\
|
-ldflags='-w -s -X main.gitCommit=${GIT_COMMIT_SHORT}' \\
|
||||||
@ -247,7 +273,19 @@ EOF
|
|||||||
|
|
||||||
echo '设置二进制文件权限...'
|
echo '设置二进制文件权限...'
|
||||||
chmod +x golang-demo
|
chmod +x golang-demo
|
||||||
"
|
")
|
||||||
|
|
||||||
|
# 复制文件到容器
|
||||||
|
docker cp . $CONTAINER_ID:/app
|
||||||
|
|
||||||
|
# 执行编译
|
||||||
|
docker start -a $CONTAINER_ID
|
||||||
|
|
||||||
|
# 复制编译结果回来
|
||||||
|
docker cp $CONTAINER_ID:/app/golang-demo .
|
||||||
|
|
||||||
|
# 清理容器
|
||||||
|
docker rm $CONTAINER_ID
|
||||||
|
|
||||||
echo "验证二进制文件..."
|
echo "验证二进制文件..."
|
||||||
ls -lh golang-demo
|
ls -lh golang-demo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user