因为pipeline的方式中,不支持插件来打tag,需要写脚本来打tag。
一开始在不了解git tag的情况下,思考的是想保证源码的一致性,我得获取到git check时的版本号,打tag的时候以这个版本号来打。所以一开始面临的问题:
下载代码的git revision怎么拿(因为同样,如果pileline脚本不是从git中获取,而是在Jenkins直接编写,调用GitSCM插件的话,git系统变量里面就拿不到了。只有作为Jenkinsfile里面下载的时候才能获取到)
备注:后来知道了,本地执行tag命令时,其实可以不带git revision,默认就是本地分支的最新commit。但是获取这个Git revision还是有用的,至少可以在构建通知邮件中展示。
node('master') {
checkout([$class: 'GitSCM', branches: [[name: 'branch1']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ssh-key', url: 'git@0.0.0.0:test/gradle-ci.git']]])
def BUILD_VERSION = version()
if (BUILD_VERSION) {
echo "Building version ${BUILD_VERSION}"