修改jenkinsfile

This commit is contained in:
wangtianqi 2025-06-25 13:45:31 +08:00
parent 0f52893ddf
commit 9caa5c3b58

110
Jenkinsfile vendored
View File

@ -1,9 +1,10 @@
pipeline { pipeline {
agent any // 使用Docker代理来提供稳定的Go环境避免网络下载问题
agent {
// 声明使用Jenkins配置的Go工具 docker {
tools { image 'golang:1.21-alpine'
go 'go' // 修正:使用小写的'go'与Jenkins配置的工具名称一致 args '-v /var/run/docker.sock:/var/run/docker.sock'
}
} }
options { options {
@ -32,6 +33,22 @@ pipeline {
} }
stages { stages {
stage('环境准备') {
steps {
echo '🔧 准备Docker环境...'
sh '''
# 安装Docker客户端和其他必要工具
apk add --no-cache docker-cli curl wget git ca-certificates tzdata
# 验证Go和Docker环境
go version
docker --version
echo "✅ 环境准备完成"
'''
}
}
stage('Checkout') { stage('Checkout') {
steps { steps {
echo '🔄 开始检出代码...' echo '🔄 开始检出代码...'
@ -226,6 +243,7 @@ EOF
stage('构建Docker镜像') { stage('构建Docker镜像') {
steps { steps {
echo '🐳 构建Docker镜像...' echo '🐳 构建Docker镜像...'
echo '💡 提示通过Docker socket在容器内访问主机Docker守护进程'
script { script {
try { try {
// 清理旧镜像 // 清理旧镜像
@ -422,26 +440,28 @@ EOF
post { post {
always { always {
script { node {
echo '🧹 清理工作空间...' script {
try { echo '🧹 清理工作空间...'
// 清理Go构建产物 try {
sh ''' // 清理Go构建产物
rm -f golang-demo sh '''
rm -f coverage.out coverage.html rm -f golang-demo
rm -f sonar-project.properties rm -f coverage.out coverage.html
''' rm -f sonar-project.properties
'''
// 清理Docker资源
sh '''
# 清理未使用的镜像
docker image prune -f || true
# 清理构建缓存 // 清理Docker资源
docker builder prune -f || true sh '''
''' # 清理未使用的镜像
} catch (Exception e) { docker image prune -f || true
echo "⚠️ 清理失败: ${e.getMessage()}"
# 清理构建缓存
docker builder prune -f || true
'''
} catch (Exception e) {
echo "⚠️ 清理失败: ${e.getMessage()}"
}
} }
} }
} }
@ -475,9 +495,10 @@ EOF
} }
failure { failure {
script { node {
echo '❌ 流水线执行失败!' script {
def message = """ echo '❌ 流水线执行失败!'
def message = """
💥 Jenkins构建失败 💥 Jenkins构建失败
📋 项目: ${env.JOB_NAME} 📋 项目: ${env.JOB_NAME}
@ -488,26 +509,29 @@ EOF
⏱️ 持续时间: ${currentBuild.durationString} ⏱️ 持续时间: ${currentBuild.durationString}
🔗 构建链接: ${env.BUILD_URL} 🔗 构建链接: ${env.BUILD_URL}
📄 查看日志: ${env.BUILD_URL}console 📄 查看日志: ${env.BUILD_URL}console
""" """
echo message echo message
// 清理可能的测试容器 // 清理可能的测试容器
sh ''' sh '''
docker stop test-${BUILD_NUMBER} || true docker stop test-${BUILD_NUMBER} || true
docker rm test-${BUILD_NUMBER} || true docker rm test-${BUILD_NUMBER} || true
''' '''
}
} }
} }
cleanup { cleanup {
script { node {
try { script {
// 清理工作空间 try {
cleanWs() // 清理工作空间
echo "✅ 清理完成" cleanWs()
} catch (Exception e) { echo "✅ 清理完成"
echo "⚠️ 清理失败: ${e.getMessage()}" } catch (Exception e) {
echo "⚠️ 清理失败: ${e.getMessage()}"
}
} }
} }
} }