【问题标题】:Using Declarative Jenkins pipeline from SCM - Subversion - How to get svn Url?使用 SCM 中的声明性 Jenkins 管道 - Subversion - 如何获取 svn Url?
【发布时间】:2021-02-25 12:03:38
【问题描述】:

这看起来是关于 Jenkins 使用的非常基本的问题。

Jenkinsfile 位于我的 Subversion 存储库树的根文件夹中。该产品有许多分支(版本/标签) - 到处都是相同的Jenkinsfile。到目前为止,我想这是非常基本的设置。

我需要为当前 Subversion 存储库分支/url 提供一些步骤。 有一些类似的问题,例如 thisthis,但没有一个适用于 Subversion。

pipeline {
  agent { label 'master' }
  stages {
    stage("test") {
      steps {
        echo "Start pipeline "
        // commented-out = not working
        //echo scm.getUserRemoteConfigs()
        //echo scm
        script {
            println "Current svn url/branch: "//??? + scm.getUserRemoteConfigs()[0].getUrl()
        }
      }
    }
  }
}

【问题讨论】:

    标签: jenkins svn jenkins-pipeline jenkins-groovy


    【解决方案1】:

    会是这样的

    pipeline {
      agent any;
      stages  {
        stage('test'){
          steps {
            script {
              def s = checkout scm;
              if      (s.GIT_URL != null) {
                print s.GIT_URL
                print s.GIT_BRANCH
                print s.GIT_COMMIT
              }
              else if (s.SVN_URL != null) {
                print s.SVN_REVISION
                print s.SVN_REVISION_1
                print s.SVN_URL
                print s.SVN_URL_1
              }
            }
          }
        }
      }
    }
    

    注意 - 这适用于 GIT 和 SVN,但有点不同。

    【讨论】:

    • 是的,这行得通。当然 scm 对象对于 svn 有不同的属性。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 2018-02-06
    • 1970-01-01
    • 2022-06-25
    • 2018-11-10
    • 2017-08-12
    • 2021-01-15
    • 1970-01-01
    相关资源
    最近更新 更多