问题标签 [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 - 在 Jenkins 中使用多分支管道“定期构建”
我正在使用 Pipeline 插件运行 Jenkins 2。我已经设置了一个多分支管道项目,其中每个分支(主、开发等)在根目录中都有一个 Jenkinsfile。设置很简单。但是,即使代码没有更改,我也不知道如何让每个分支定期运行(而不是分支索引)。我需要在我的 Jenkinsfile 中添加什么来启用定期构建?
git - 如何远程触发 Jenkins 多分支管道项目构建?
标题主要是这样说的。如何从远程 git 存储库触发 Jenkins 多分支管道项目构建?
“触发器远程构建”构建触发器选项似乎不起作用,因为您设置的令牌没有保存。
jenkins-pipeline - 将工件或字符串传递给 Jenkins Pipeline 中的上游作业
目标
我正在尝试使用 GitHub 组织插件和 jenkins 管道来编排依赖链。
由于我正在构建的产品具有许多共享依赖项,因此我使用 nuget 包来管理依赖项版本控制和更新。
但是,我无法为进行编排的项目获取必要的工件/信息。
战略
在 SCM 更改时,任何上游共享库都应该构建一个 nuget 包并协调任何需要新引用的下游构建:
- 我在每个上游项目中对下游编排进行硬编码。 因此,如果构建了 A,则依赖于 A 的 B 和 C 将使用来自 A 的最新工件构建。之后,依赖于 B 和 C 的 D 以及依赖于 A 和 C 的 E 将使用来自 A 的最新工件构建A、B、C 根据需要。等等。 这些都将由 A 的 Jenkinsfile 分阶段触发,因为依赖项是使用“Build Job: Jobname”语法构建的。我找不到一个解决方案,我可以在每个步骤中将编排传递到下游,因为依赖项在下游发散和收敛,并且我不想触发对上游项目的不同引用的同一下游项目的多个构建。
- 我可以将父项目的工件信息传递给任何下游作业,但我面临的问题是,父项目没有任何下游工件的程序集版本信息(需要在下游进一步编排作业)。Stash/Unstash 似乎没有任何跨作业功能,并且归档/取消归档已被弃用。
TLDR: 我需要一种将字符串或文本文件上游传递到作业中间执行(来自多个下游作业)的方法,或者我需要一种用于具有共享下游依赖项的多个下游作业的方法,以协调并共同将信息传递给下游作业(仅触发一次)。
谢谢!
jenkins - Jenkins管道多分支问题在并行作业后重用节点类型
我正在尝试将我们的 CI 流程从 JobDSL 迁移到多分支管道设置。作为第一步,我决定将管道委托回现有作业(传递所需的参数)我的管道如下所示(伪代码)
但是,我在最后一个“发布”阶段遇到了问题。当它启动 gradle 目标时,它正确地重用了“设置”阶段的工作区,但似乎在原始结帐的“持久”子文件夹中执行(即,设置阶段的过去执行/mnt/jenkins/workspace/<branchname>/<random_hash>/
但最后一个 gradle 目标执行在诸如/mnt/jenkins/workspace/<branchname>/<random_hash>@tmp/durable-<hash>/script.sh
) 的文件夹中,这会导致 gradlew not found 错误
我尝试过使用 directory('/...'){...} ,但这似乎并没有解决问题...任何帮助或指导将不胜感激!
jenkins - 如何在多分支管道中为特定分支设置下一个内部版本号
我正在尝试以编程方式为我们的发布分支设置下一个内部版本号,但我遇到了一个问题。
以下是我尝试过的两种方法:
我也尝试使用CLI
命令:
但没有运气。
请指导我如何为多分支管道设置下一个内部版本号。
jenkins - BitBucket Team Multibranch 管道作业忽略 PR
我正在使用 Bitbucket Branch Source Plugin 为 Bitbucket 中特定项目目录下的每个 repo 自动配置多分支管道作业。一个 repo 包含一个有效的 Jenkinsfile。该存储库的主分支构建和部署良好。但是,尚未构建该 repo 的拉取请求。我看到以下日志:
拉取请求的指定分支确实包含一个 Jenkinsfile,所以我不明白为什么它说不符合条件。有什么建议么?
“自动分支项目触发”选项设置为默认.*
我正在对 Jenkins 使用以下插件:
git - 詹金斯 - 如果开始新的构建,则中止运行构建
我使用 Jenkins 和多分支管道。我为每个活动的 git 分支都有一份工作。新构建由 git 存储库中的推送触发。如果新版本出现在同一分支中,我想要的是中止当前分支中正在运行的构建。
例如:我提交并推送到分支feature1
。然后BUILD_1
从詹金斯开始。我再次提交并feature1
在BUILD_1
仍在运行时推送到分支。我想BUILD_1
流产并开始BUILD_2
。
我尝试使用stage concurrency=x
选项和阶段锁定里程碑功能,但未能解决我的问题。
我也读过这个线程Stopping Jenkins job in case new one is started,但我的问题没有解决方案。
你知道有什么解决办法吗?
git - How to trigger Jenkins Multi-Branch Pipeline with Gitlab Webhook
I currently set up a Jenkins Multi-Branch Pipeline job that is based on a Git repository hosted on our Gitlab server. Jenkins can read the branches in the repository and creates a job for every branch in the repository. But I can't figure out how to trigger the jobs with webhooks in Gitlab.
My questions are:
How can I trigger the creation of a new branch job in Jenkins from our Gitlab server? I can't see a webhook for a new branch being pushed.
How do I trigger the actual build job for a single branch? I can only add a webhook for push events but then I would have to add the branch name which I don't know how to do.
How can I make sure that Gitlab always triggers the "creation of the branch job" before a push to a branch triggers the build job itself.
What I tried so far is triggering the multi-branch job, but this has no effect and following this post does not work at all.
jenkins - Jenkins,在多分支管道中运行分支索引的管道代码
我有我的 Jenkins 设置来运行多分支管道项目,我使用 API 来触发其中的特定分支。
我的问题是它只有在分支被索引时才有效,否则我从 API 得到 404。
我已设法通过 API 运行分支索引,但我不知道此任务何时完成
通过跟踪和错误,我已经能够弄清楚:
- 对分支索引的 API 调用不返回队列 ID,因此我无法检查其状态
- 无论队列和执行限制如何,索引任务都会立即运行。
- 我一直无法从管道(其他作业)运行此任务,尝试运行此任务会导致错误
有没有办法判断任务是否完成,以及它的成功价值?
jenkins - 如果提交消息包含 [ci skip],如何获取 git 最新提交消息并阻止 jenkins 构建?
我试图在 jenkinsfile 中获取 git 提交消息并阻止基于提交消息的构建。
env.GIT_COMMIT不会在 jenkinsfile 中返回提交详细信息。
如果提交消息中包含 [ci skip],如何获取 git 最新提交消息并阻止 jenkins 构建?