使用来自 SCM 的声明式 Jenkins 管道 - Subversion - 如何获取 svn Url?

Using Declarative Jenkins pipeline from SCM - Subversion - How to get svn Url?

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

Jenkinsfile 位于我的 Subversion 存储库树的根文件夹中。产品有很多分支 (versions/tags) - 到处都是一样的 Jenkinsfile。我想到目前为止是非常基本的设置。

我需要提供一些使用 当前 Subversion 存储库 branch/url 的步骤。 有一些类似的问题,如 this or this,但 none 是 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()
        }
      }
    }
  }
}

会是这样

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,但有点不同。