【发布时间】:2019-12-18 22:08:54
【问题描述】:
我将其合并为 vars/gitCheckout.goovy 将其作为库添加到 jenkins 中
def call(String branch = '*/master') {
checkout([$class: 'GitSCM',
branches: [[name: ${branch}]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: false,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false]],
submoduleCfg: [],
userRemoteConfigs: [[url: 'https://my-server.com/some/project.git']]])
}
从 jenkins Pipeline Script 调用这个方法如下:
@Library('jenkins-library@master') _
pipeline {
agent { label 'my-server' }
stages {
stage('Git Checkout') {
steps {
gitCheckout()
}
}
}
}
这会失败并出现错误java.lang.NoSuchMethodError: No such DSL method '$' found among steps [ArtifactoryGradleBuild, MavenDescriptorStep, ....
我尝试了 $branch、params.branch,但它不起作用,如果我不使用参数并硬编码分支名称,代码会起作用。另外,每当我对这个 .groovy 脚本进行任何更新时,我是否应该通过将它合并并作为 jenkins 作业运行来测试它?在合并 groovy 脚本之前还有其他方法可以测试吗?
【问题讨论】:
标签: jenkins-pipeline jenkins-groovy