使用SCM中的声明性Jenkins管道-Subversion-如何获取svn Url?

使用SCM中的声明性Jenkins管道-Subversion-如何获取svn Url?,jenkins,svn,jenkins-pipeline,jenkins-groovy,Jenkins,Svn,Jenkins Pipeline,Jenkins Groovy,这看起来像是关于Jenkins用法的基本问题 我的Jenkinsfile位于Subversion存储库树的根文件夹中。该产品有许多分支(版本/标签)-到处都是相同的Jenkinsfile。到目前为止,我想是非常基本的设置 我需要为当前Subversion存储库分支/url提供一些步骤。 有一些类似的问题,比如or,但是没有一个是有效的颠覆解决方案 pipeline { agent { label 'master' } stages { stage("test"

这看起来像是关于Jenkins用法的基本问题

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

我需要为当前Subversion存储库分支/url提供一些步骤。 有一些类似的问题,比如or,但是没有一个是有效的颠覆解决方案

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()
        }
      }
    }
  }
}
会是这样的

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有不同的属性。谢谢