简化 Jenkins 推送:构建即推 + 固定 latest
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Vendored
+9
-30
@@ -25,9 +25,6 @@ pipeline {
|
||||
booleanParam(name: 'SKIP_TEST',
|
||||
defaultValue: false,
|
||||
description: '跳过单测(紧急发版用,正常构建不要勾)')
|
||||
booleanParam(name: 'PUSH_LATEST',
|
||||
defaultValue: true,
|
||||
description: '同时打 :latest 并推送')
|
||||
}
|
||||
|
||||
environment {
|
||||
@@ -87,32 +84,18 @@ pipeline {
|
||||
|
||||
stage('Build image') {
|
||||
steps {
|
||||
script {
|
||||
// 同时打两个 tag:精确 tag + 可选 latest
|
||||
def tags = ["-t ${env.IMAGE_NAME}:${env.IMAGE_TAG}"]
|
||||
if (params.PUSH_LATEST) {
|
||||
tags << "-t ${env.IMAGE_NAME}:latest"
|
||||
}
|
||||
sh """
|
||||
docker build ${tags.join(' ')} \
|
||||
--label org.opencontainers.image.revision=${env.GIT_SHA} \
|
||||
--label org.opencontainers.image.version=${env.IMAGE_TAG} \
|
||||
-f Dockerfile .
|
||||
"""
|
||||
}
|
||||
sh """
|
||||
docker build \
|
||||
-t ${env.IMAGE_NAME}:${env.IMAGE_TAG} \
|
||||
-t ${env.IMAGE_NAME}:latest \
|
||||
--label org.opencontainers.image.revision=${env.GIT_SHA} \
|
||||
--label org.opencontainers.image.version=${env.IMAGE_TAG} \
|
||||
-f Dockerfile .
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push image') {
|
||||
// 只在 master / 手动构建时推送;PR 构建只产镜像不推
|
||||
when {
|
||||
anyOf {
|
||||
branch 'master'
|
||||
branch 'main'
|
||||
buildingTag()
|
||||
expression { return !params.IMAGE_TAG?.trim().isEmpty() && params.IMAGE_TAG != "${env.BUILD_NUMBER}-${env.GIT_SHA}" }
|
||||
}
|
||||
}
|
||||
steps {
|
||||
withCredentials([usernamePassword(
|
||||
credentialsId: 'gitea-registry',
|
||||
@@ -122,12 +105,8 @@ pipeline {
|
||||
sh """
|
||||
echo "\$REGISTRY_PASS" | docker login git.jerryyan.net -u "\$REGISTRY_USER" --password-stdin
|
||||
docker push ${env.IMAGE_NAME}:${env.IMAGE_TAG}
|
||||
docker push ${env.IMAGE_NAME}:latest
|
||||
"""
|
||||
script {
|
||||
if (params.PUSH_LATEST) {
|
||||
sh "docker push ${env.IMAGE_NAME}:latest"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user