成功最有效的方法就是向有经验的人学习!

pipeline中获取Git version

因为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}"
        }   
      def GIT_REVISION = GIT_Revision()
      if (GIT_REVISION) {
          echo "GIT_REVISION: ${GIT_REVISION}"
        }   

    stage ('BAT'){
        echo "${BUILD_VERSION}"
        echo "${GIT_REVISION}"
        }

    stage ('TAG'){
        bat """
            git tag -d release-${BUILD_VERSION}.${BUILD_NUMBER}
            git config --global user.email "qa-ci@xxx.cn"
            git config --global user.name "qa-ci"
            git tag -a "release-${BUILD_VERSION}.${BUILD_NUMBER}" -m "CI Autobuild ${BUILD_VERSION}.${BUILD_NUMBER}" ${GIT_REVISION} 
            git push origin "release-${BUILD_VERSION}.${BUILD_NUMBER}"
            """

    }
}
//从源码的VERSION.md中自动获取版本号
您暂时无权查看此隐藏内容!
//需要注意的是,因为获取的文件并非本地文件,所以需要将check代码的步骤放在变量使用处之前。另外,因为check代码的步骤需要独立于stage,这样才能被全局获取到。
内容查看本文隐藏内容查看需要消耗4土豆币,请先
土豆币按需购买,不退换,请考虑清楚后购买。
赞(0) 打赏
未经允许不得转载:陈桂林博客 » pipeline中获取Git version
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册