1111
This commit is contained in:
+26
-40
@@ -1,15 +1,19 @@
|
||||
pipeline {
|
||||
agent { label '构建机1' }
|
||||
agent any
|
||||
|
||||
parameters {
|
||||
booleanParam(
|
||||
name: 'FORCE_BUILD_ALL',
|
||||
defaultValue: false,
|
||||
description: '强制构建所有镜像'
|
||||
)
|
||||
}
|
||||
|
||||
environment {
|
||||
IMAGE_PREFIX = "im"
|
||||
IMAGE_TAG = "${BUILD_NUMBER}"
|
||||
|
||||
DOCKER_BUILDKIT = "1"
|
||||
|
||||
// 如果你有 Harbor,可以改成:
|
||||
// REGISTRY = "harbor.xxx.com/im"
|
||||
REGISTRY = "reg.nxsir.cn/im"
|
||||
REGISTRY = ""
|
||||
}
|
||||
|
||||
stages {
|
||||
@@ -22,21 +26,23 @@ pipeline {
|
||||
stage('检测变更') {
|
||||
steps {
|
||||
script {
|
||||
def diffCmd = '''
|
||||
if git rev-parse HEAD~1 >/dev/null 2>&1; then
|
||||
git diff --name-only HEAD~1 HEAD
|
||||
else
|
||||
git ls-files
|
||||
fi
|
||||
'''
|
||||
if (params.FORCE_BUILD_ALL || env.BUILD_NUMBER == '1') {
|
||||
env.BUILD_ALL = "true"
|
||||
env.CHANGED_FILES = "FIRST_BUILD"
|
||||
echo "首次构建或手动强制构建,构建全部镜像"
|
||||
} else {
|
||||
env.BUILD_ALL = "false"
|
||||
|
||||
env.CHANGED_FILES = sh(
|
||||
script: diffCmd,
|
||||
returnStdout: true
|
||||
).trim()
|
||||
env.CHANGED_FILES = sh(
|
||||
script: '''
|
||||
git diff --name-only HEAD~1 HEAD
|
||||
''',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
|
||||
echo "变更文件:"
|
||||
echo env.CHANGED_FILES
|
||||
echo "变更文件:"
|
||||
echo env.CHANGED_FILES
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -129,7 +135,7 @@ pipeline {
|
||||
def changedFiles = env.CHANGED_FILES.split("\\n") as List
|
||||
|
||||
services.each { svc ->
|
||||
def needBuild = changedFiles.any { file ->
|
||||
def needBuild = env.BUILD_ALL == "true" || changedFiles.any { file ->
|
||||
svc.paths.any { path ->
|
||||
file.startsWith(path)
|
||||
}
|
||||
@@ -147,16 +153,6 @@ pipeline {
|
||||
-t ${latestName} \
|
||||
-f ${svc.dockerfile} .
|
||||
"""
|
||||
|
||||
if (env.REGISTRY?.trim()) {
|
||||
sh """
|
||||
docker tag ${imageName} ${REGISTRY}/${svc.image}:${IMAGE_TAG}
|
||||
docker tag ${latestName} ${REGISTRY}/${svc.image}:latest
|
||||
|
||||
docker push ${REGISTRY}/${svc.image}:${IMAGE_TAG}
|
||||
docker push ${REGISTRY}/${svc.image}:latest
|
||||
"""
|
||||
}
|
||||
} else {
|
||||
echo "跳过构建:${svc.name},没有相关代码变更"
|
||||
}
|
||||
@@ -165,14 +161,4 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
echo "流水线执行成功"
|
||||
}
|
||||
|
||||
failure {
|
||||
echo "流水线执行失败"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user