jre*_*csu 5 shared-libraries jenkins-pipeline
方案:我在一个项目中有一个JenkinsFile,该项目使用以下方法引用共享管道库中的代码 @Library('my-lib')语法。我想测试对库函数的更改,而无需执行对库回购的提交。
我意识到可以在include语句中定位库的特定版本或分支。我还意识到,可以通过使用Jenkins UI中的“重播”功能来修改JenkinsFile中的脚本而无需提交。如何在不需要对要测试的分支进行提交的情况下测试对共享库代码的修改?现在,我们必须对库代码进行每次调整都执行一次提交,并且我们不希望有总提交历史记录。换句话说,我们只希望提交我们知道正在工作的代码的库回购。
小智 6
对于我的用例,我想测试在不同分支上创建的库变量的更改。
由于重放将使用已设置的内容,因此您需要一种清除它们的方法,以确认它们已正确加载。
我还没有检查,是否有一种“更清洁”的方法来做到这一点。这将是下一步。
这是我的解决方法:
输入重播并评论 Mainscript (Jenkinsfile) 上的 @Library('libname')
//@Library('libname')
Run Code Online (Sandbox Code Playgroud)运行构建。这将按预期失败并清除以前的重播变量。
再次进入replay,取消注释并调整库测试分支
@Library('libname@test-branch')
Run Code Online (Sandbox Code Playgroud)构建应该成功运行并且重放变量应该反映更改。
事实证明,我要么是瞎子,要么 Jenkins Pipeline 现在支持在使用“重播”功能时编辑库代码。每当您将新文件添加到库中时,您都必须进行提交才能使其显示在重播屏幕上。一旦到达,您就可以对其进行编辑,而无需每次都进行提交。一旦您对重播的工作感到满意,您就可以提交并推送。