对于我们发布的每个版本,我都有大量的 Jenkins 作业。我希望能够轻松定义新版本,并且很高兴发现文件夹属性 插入
我为该版本定义了一个文件夹属性:
之后我定义了一个尝试作业,它使用文件夹定义并回显它的值。
。
我运行它并获取日志上的值:
version: master
echo 'folder version: master'
folder version: master
Finished: SUCCESS
现在,我为该作业添加了一个 SCM 定义:
但我在日志中收到错误。如您所见,$folder_version 没有获得“master”值。
git rev-parse refs/remotes/origin/$folder_version^{commit} # timeout=10
git rev-parse refs/remotes/origin/refs/heads/$folder_version^{commit} # timeout=10
git rev-parse refs/heads/$folder_version^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
我在这里遗漏了什么?
答案1
感谢您使用我的插件。关于您的问题,我相信在自由式作业中,SCM 步骤不会尝试插入选择器字符串,因此您可以看到控制台输出将呈现以下内容:
git rev-parse refs/remotes/origin/origin/$folder_version^{commit} # timeout=10
其中$folder_version
预期的占位符未被插入。
或者,切换到管道作业并执行以下操作:
stage('Test SCM'){
node{
withFolderProperties{
echo("Branch is '${env.folder_version}'")
git branch: env.folder_version, credentialsId: 'my-github-credentials', url: 'https://github.com/my-org/my-project.git'
isUnix()?sh('ls -la'):bat('dir')
}
}
}
我希望这有帮助。