问题标签 [multibranch-pipeline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jenkins - 在多分支管道中授予复制工件权限
我有以下设置:
通过Jenkinsfile
. 成功签出和构建后,工件被存档并触发下游作业以部署生成的工件。
要使第二个作业能够通过该[$class: 'CopyArtifact'...
步骤复制工件,它需要复制权限。
所以问题是,我如何通过Jenkinsfile
上游作业授予这些权限?
github - 提出拉取请求的 GitHub 分支名称
我在 Jenkins 中使用多分支管道作业。
如何在 GitHub 中找到提出拉取请求的分支名称?
我正在使用/github-webhook/
&/ghprbhook/
并尝试使用以下环境变量:GIT_LOCAL_BRANCH
, GIT_BRANCH
, ghprbSourceBranch
,但我没有得到任何结果。
如果有任何建议,我很想尝试一下。
jenkins - Jenkins JobDSL multibranchPipelineJob 更改脚本路径
我正在尝试在 jobDSL 中创建一个 multibranchPipelineJob,但是 Jenkinsfile 位于默认位置的替代位置。我查看了文档https://jenkinsci.github.io/job-dsl-plugin/#path/multibranchPipelineJob ,但我看不到这样做的方法。查看手动创建的 multibranchPipelineJob 的 config.xml,scriptPath 在该部分中,但我找不到 DSL 方法来设置它。
任何人都可以就如何做到这一点提供任何帮助吗?干杯
jenkins - 在多分支管道作业中按分支限制运行状况指标
在多分支 Jenkins 工作中,您可以决定显示健康指标,它们是从健康状况较差的分支获得的。这很好,只是功能分支通常会失败,从而给项目带来较差的一般状态。是否可以将健康指标限制为仅考虑主分支和开发分支?
jenkins - Jenkins:如何设置 GitHub 组织下作业的周期性扫描间隔?
在 Jenkins 中配置 GitHub 组织文件夹(GitHub 分支源插件)时,可以设置周期性扫描整个组织的时间间隔。.
但是,我发现这不会影响扫描 GitHub 文件夹下存储库分支的间隔。即使将组织的扫描设置为 1 小时,单个存储库扫描的间隔仍为 1 天。.
我希望每小时扫描一次我的所有存储库。GitHub组织下的仓库如何设置周期性扫描间隔?
jenkins - 闭包内的 Jenkins 管道库调用导致安全异常
我们正在使用带有组织文件夹的多分支管道(Bitbucket 分支源插件)。我正在使用共享库干燥我们的管道,从Jenkins 文档和论坛帖子中获取提示。我还向其他开发人员提供脚本,试图在希望一切“正常工作”的人和想要定制的人之间取得平衡。
我编写了一个包含管道和默认步骤的共享库。这个库是在 Jenkins 的文件夹级别配置的。
pipeline_main.groovy
如果有一个带有键“init”的 Map 条目,或者如果没有,则使用用户提供的阶段进行一些初始化default_init
:
和詹金斯文件:
当只使用默认值时,调用库中定义的管道效果很好。
现在,请注意customInit
Jenkinsfile 中的方法。为了进行测试,我添加了一个调试行并从库中调用了该default_init
步骤。当我使用此配置(未default_init
注释)运行测试构建时,构建失败并出现安全异常:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用方法 groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object ...
如果customInit
方法只是echo
管道成功执行的步骤。
我知道我可以将调用列入白名单invokeMethod
,但似乎我应该尊重 Jenkins 发出的警告,即拒绝请求以避免可能的安全漏洞。而且,我知道我可以在全局 Jenkins 级别定义库以使其受信任;但是,如果可能的话,我宁愿坚持使用每个文件夹的方法。
我想知道为什么直接从 Jenkinsfile 调用的库方法不会调用安全异常,但封装在闭包中的库方法会这样做?还是我只是想念别的东西?
PS Jenkins 2.89.3、Bitbucket Branch Source 2.2.9、最新版本的所有“管道:...”库。
default_init.groovy
内容,如果重要的话:
maven - 即使在 jenkins 脚本中分配了 pom 版本号,Env 变量值也被重置为原始值
我有一个场景,我必须阅读不同组件的 maven pom 版本并将版本分配给 docker image(TAG)。但是在我阅读 pom 后,将它分配给一些全局变量,它将在 groovy jenkins 脚本中重置为原始值。下面是示例。HMAP_VERSION 值将是 1.2.1 但当它在行中使用时:sh "docker login -u ${ART_USERNAME} -p ${ART_PASSWORD} test.com"
该值将是UNINITIALISED
.
有人可以告诉我可能出了什么问题吗?这将适用于在 env 块中读取的单个 maven 文件,如下所示:
下面是我想做什么的示例。
jenkins-pipeline - 从多分支管道触发功能/修补程序分支
我是多分支管道概念的新手,并试图在我们的项目中实施,我们在 docker 容器中运行我们的 jenkins 构建。
我们有一个要求,所有针对“开发”分支的构建都应该进行构建和 docker 镜像创建。其余创建的“功能/热修复”分支只需build .
我通过以下方式编写了一个 Jenkinsfile 文件
这里的问题是我们对特性分支名称进行硬编码,如果有人创建具有不同名称的分支并且 Jenkinsfile 将无法识别它,这可能是一个问题。
我正在尝试以 Jenkinsfile 必须自动识别新创建的分支并应该针对它运行构建的方式编写。
任何帮助,将不胜感激。