修改jenkinsfile
This commit is contained in:
parent
0f52893ddf
commit
9caa5c3b58
110
Jenkinsfile
vendored
110
Jenkinsfile
vendored
@ -1,9 +1,10 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
// 声明使用Jenkins配置的Go工具
|
||||
tools {
|
||||
go 'go' // 修正:使用小写的'go',与Jenkins配置的工具名称一致
|
||||
// 使用Docker代理来提供稳定的Go环境,避免网络下载问题
|
||||
agent {
|
||||
docker {
|
||||
image 'golang:1.21-alpine'
|
||||
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
||||
}
|
||||
}
|
||||
|
||||
options {
|
||||
@ -32,6 +33,22 @@ pipeline {
|
||||
}
|
||||
|
||||
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') {
|
||||
steps {
|
||||
echo '🔄 开始检出代码...'
|
||||
@ -226,6 +243,7 @@ EOF
|
||||
stage('构建Docker镜像') {
|
||||
steps {
|
||||
echo '🐳 构建Docker镜像...'
|
||||
echo '💡 提示:通过Docker socket在容器内访问主机Docker守护进程'
|
||||
script {
|
||||
try {
|
||||
// 清理旧镜像
|
||||
@ -422,26 +440,28 @@ EOF
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
echo '🧹 清理工作空间...'
|
||||
try {
|
||||
// 清理Go构建产物
|
||||
sh '''
|
||||
rm -f golang-demo
|
||||
rm -f coverage.out coverage.html
|
||||
rm -f sonar-project.properties
|
||||
'''
|
||||
|
||||
// 清理Docker资源
|
||||
sh '''
|
||||
# 清理未使用的镜像
|
||||
docker image prune -f || true
|
||||
node {
|
||||
script {
|
||||
echo '🧹 清理工作空间...'
|
||||
try {
|
||||
// 清理Go构建产物
|
||||
sh '''
|
||||
rm -f golang-demo
|
||||
rm -f coverage.out coverage.html
|
||||
rm -f sonar-project.properties
|
||||
'''
|
||||
|
||||
# 清理构建缓存
|
||||
docker builder prune -f || true
|
||||
'''
|
||||
} catch (Exception e) {
|
||||
echo "⚠️ 清理失败: ${e.getMessage()}"
|
||||
// 清理Docker资源
|
||||
sh '''
|
||||
# 清理未使用的镜像
|
||||
docker image prune -f || true
|
||||
|
||||
# 清理构建缓存
|
||||
docker builder prune -f || true
|
||||
'''
|
||||
} catch (Exception e) {
|
||||
echo "⚠️ 清理失败: ${e.getMessage()}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -475,9 +495,10 @@ EOF
|
||||
}
|
||||
|
||||
failure {
|
||||
script {
|
||||
echo '❌ 流水线执行失败!'
|
||||
def message = """
|
||||
node {
|
||||
script {
|
||||
echo '❌ 流水线执行失败!'
|
||||
def message = """
|
||||
💥 Jenkins构建失败!
|
||||
|
||||
📋 项目: ${env.JOB_NAME}
|
||||
@ -488,26 +509,29 @@ EOF
|
||||
⏱️ 持续时间: ${currentBuild.durationString}
|
||||
🔗 构建链接: ${env.BUILD_URL}
|
||||
📄 查看日志: ${env.BUILD_URL}console
|
||||
"""
|
||||
|
||||
echo message
|
||||
|
||||
// 清理可能的测试容器
|
||||
sh '''
|
||||
docker stop test-${BUILD_NUMBER} || true
|
||||
docker rm test-${BUILD_NUMBER} || true
|
||||
'''
|
||||
"""
|
||||
|
||||
echo message
|
||||
|
||||
// 清理可能的测试容器
|
||||
sh '''
|
||||
docker stop test-${BUILD_NUMBER} || true
|
||||
docker rm test-${BUILD_NUMBER} || true
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cleanup {
|
||||
script {
|
||||
try {
|
||||
// 清理工作空间
|
||||
cleanWs()
|
||||
echo "✅ 清理完成"
|
||||
} catch (Exception e) {
|
||||
echo "⚠️ 清理失败: ${e.getMessage()}"
|
||||
node {
|
||||
script {
|
||||
try {
|
||||
// 清理工作空间
|
||||
cleanWs()
|
||||
echo "✅ 清理完成"
|
||||
} catch (Exception e) {
|
||||
echo "⚠️ 清理失败: ${e.getMessage()}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user