当前位置: 首页 > 知识库问答 >
问题:

从Jenkinsfile中的jenkins作业配置中读取SVN URL

宗意蕴
2023-03-14

我有一个Jenkins管道作业,它被配置为“来自SCM的管道脚本”,指向SVN中的Jenkinsfile。例如,SVN URL是http://example.com/SVN/myproject/trunk/jenkins master执行浅表签出(仅限根文件),然后在根查找Jenkinsfile。

这个URL在Jenkinsfile中重复,在一个单独的jenkins代理上签出SVN工作区的步骤中。

共有1个答案

王英彦
2023-03-14

最后,我设法通过scm全局文件从作业配置中检索SVN URL,将其存储在SVNURL环境变量中,然后在签出步骤中使用它,而不是硬编码SVN URL。

stage('stage-name')
{
    steps
    {
        // Get the SVN URL from the pipeline job configuration
        script
        {
            env.SVNURL = scm.getLocations()[0].getURL()
        }

        checkout([
            $class: 'SubversionSCM',
            filterChangelog: false,
            ignoreDirPropChanges: false,
            locations:
                [[
                    credentialsId: '<guid>',
                    depthOption: 'infinity',
                    ignoreExternalsOption: false,
                    local: 'my-checkout-folder',
                    remote: env.SVNURL
                ]],
            workspaceUpdater: [$class: 'UpdateWithCleanUpdater']
        ])
    }
}
 类似资料:
  • 问题内容: 为什么Jenkins有两种工作,即多配置项目和自由样式项目?我读过某个地方,一旦选择其中一个,就无法(轻松地)转换为另一个。为什么我不总是选择多配置项目以确保将来的更改安全? 我想为在Windows和Unix(以及其他平台)上构建的项目设置构建。我发现了这个问题),它提出了相同的问题,但我并没有真正找到答案。为什么我需要三个矩阵项目(而不是三个自由样式项目),每个平台一个?为什么不能将

  • 我想准备两个作业在同一个jenkins服务器,将读取从一个特定的分支。我必须使用git标签为其中一个作业,以某种方式将它们分开。 拜托,你能用git标签在jenkins中粘贴一些包含作业触发器的代码吗?

  • 问题内容: 在管理多个作业的管道作业的Groovy代码中,是否可以读取在另一个作业的配置中定义的参数的默认值? 也就是说,在管道作业A中,我想读取作业B中参数P的默认值,该值尚未安排。(这将影响在作业A中构造B的请求的方式。) ReadJobParamDefault是否真正有用? 问题答案: 我想可能可以将某些Groovy类存储到共享库(https://jenkins.io/doc/book/pi

  • 我的批处理配置: 我的任务: 公共类RemoteFileInboundTasklet实现Tasklet{ 我尝试在配置中将我的tasklet声明为bean并重新构建包。然而,它却给出了同样的错误。 更改后的我的application.properties文件: 任务没有改变。 因此,相应地,我的Tasklet更改为: 基于以上更改,我能够编译代码并创建必要的Jar,并使用Jar运行代码。

  • 问题内容: 我有一个参数化的詹金斯工作正在访问我的插件。 在Java的插件代码内部,我需要使用这些参数才能 触发jenkins中的另一项工作。我无法获取这些参数,现在这 是一个非常高优先级的问题。我尝试过 stackoverflow上可用的多种解决方案,例如,尝试访问环境变量, 但未收到参数的值。例如,我的参数是“ REPOS”,我 需要它的值,我尝试过: 但它返回null。 另外,尝试: 但它会

  • 我为三个github存储库(app1、app2和app3)中的每一个创建了单独的Jenkins作业。然后是部署和测试存储库。 下面是app1的jenkinsfile。(对于app2,只有GIT\u REPO\u URL1不同 app1/app2/app3上的代码传递分别触发app1/app2/app3 jenkins作业。 现在的问题是,当我把代码更改推到https://github.com/de