使用Jenkins进行多平台mutibranch构建.
我有多个Multibranch Pipeline项目(每个平台一个,因为每个平台需要特别不同的构建步骤).我有一个包含多个分支的代码存储库(这就是Multibranch Pipeline项目有意义的原因).
我想让每个Multibranch Pipeline项目引用一个不同的Jenkins文件,而不是所有尝试使用位于存储库根目录中的文件名为"Jenkinsfile"的文件.
这个已解决的错误表明我应该能够做到这一点,但我找不到任何文档概述如何执行此操作.任何人都知道如何做到这一点?
谢谢你的时间!艾伦
我试图让Jenkins的multibranch管道工作以类似于分支的方式构建标签.在Jenkins 2.73中(不确定何时添加了功能),Multibranch项目可以配置为从源存储库中检索分支和标记.最初我认为这对我的需求是完美的(我的Jenkinsfile现在可以在Jenkins的同一个地方构建开发或生产版本). 配置了标签发现的多分支作业
我有构建过程本身并很愉快地与脚本管道运行,但我的问题是,虽然分支工作皮卡我的触发器完美(克朗每周),并因此使用Git的插件的notifyOnCommit功能触发(让我擦建立周报,但是通过repo scan webhook建立对repo的提交),标签构建不会.
还有其他人遇到过这个吗?如果是这样,你有没有找到任何合理的解决方法?
来自我的脚本管道的相关片段(我尝试使用和不使用overrideIndexTriggers设置):
properties(
[
pipelineTriggers(
triggers: [
cron('H 02 * * 7')
]
),
overrideIndexTriggers(true)
]
)
从multibranch管道生成的分支作业轮询配置似乎很好多分支管道 从标签生成的作业不会收到相同的配置,奇怪......
multibranch管道扫描日志中有一条注释表明将永远不会自动安排标签:
Processed 8 branches
Checking tags...
Checking tag testing
‘Jenkinsfile’ found
Met criteria
No automatic builds for testing
Processed 1 tags
[Mon Oct 23 09:55:00 UTC 2017] Finished branch indexing. Indexing took 8.1 sec
Finished: SUCCESS
我的项目是基于docker的,我想每周运行一次发布版本,以引入任何基本图像更改等.
有没有人对我能做些什么来获得多分支项目来安排标签构建?
在Jenkins中配置GitHub Organization Folders(GitHub分支源插件)时,您可以设置整个组织的定期扫描间隔。
。
但是,我发现这不会影响扫描GitHub文件夹下存储库分支的间隔。即使将组织的扫描时间设置为1小时,单个存储库扫描的间隔仍保持为1天。
。
我希望每小时对我的所有存储库进行一次扫描。如何在GitHub组织下设置存储库的定期扫描间隔?
github jenkins jenkins-plugins jenkins-pipeline multibranch-pipeline
当前,我们在一个Jenkins实例(生产性实例)中用于处理多分支测试作业的bitbucket分支源插件遇到了一些麻烦:
在詹金斯中,与已删除分支相关的所有作业都不会被删除。显示为禁用。
检查Scan Multibranch Pipeline Log我发现以下条目:
Will not remove foobranch because it is new
Will not remove PR-1 because it is new
Will not remove bar because it is new
Will not remove freeDiskSpaceHack because it is new
Run Code Online (Sandbox Code Playgroud)
我们还有另一个实例(测试实例),所有实例都按预期工作-分支会立即删除,例如,在日志中看到以下内容:
Will remove freeDiskSpaceHack
Will remove foo
Run Code Online (Sandbox Code Playgroud)
除此之外,没有区别。
Will not remove <branch> because it is new。希望任何人都有头绪。
我在具有两个分支的项目中使用multibranch管道:develop和master.这将创建两个子项目,每个分支一个:
App_Pipeline
|---master
|---develop
Run Code Online (Sandbox Code Playgroud)
我已经设置了角色策略插件来控制作业/管道的授权(可见性),具体取决于分配的角色.
项目角色:
App_.* App_.*使用我当前的角色,两种类型的用户都可以看到超级项目(App_Pipeline),并且可以执行这两个子项目.
关键是我希望一些用户(开发人员)能够查看和运行开发子项目以及其他一些(管理者)来查看和运行子项目,掌握和开发.
我还没有找到一种配置方法,任何想法如何实现?
更新:这是问题的整个背景.
我正在使用multibranch管道来扫描整个Bitbucket项目,这让我:
ORGANIZATION
Repo1
|---master
|---develop
Repo2
|---master
|---develop
Poc-repo1
|---master
|---develop
Poc-repo2
|---master
|---develop
Run Code Online (Sandbox Code Playgroud)
我需要支持这些案件:
jenkins jenkins-plugins jenkins-pipeline jenkins-2 multibranch-pipeline
当您创建Github组织或Bitbucket团队/项目时,其中一个配置项是:
项目识别器:管道Jenkinsfile
除了"Pipeline Jenkinsfile"之外没有其他选项,但是该选项甚至存在这一事实表明开发人员设想人们为顶级目录中没有单个'Jenkinsfile'的项目编写自己的自定义'识别器'回购.
任何人都可以指出我可以安装和使用的任何其他项目识别器的方向,甚至是一些关于从哪里开始实现我自己的识别器的细节?
我的特定用例是在单个存储库中,我们定义了几个工作流,这些工作流在一个仓库中协调代码/配置上的操作,我希望能够使用Bitbucket Team选项动态扫描仓库,找到所有*.Jenkinsfile跨所有分支/拉取请求的文件并填充必要的管道.
例如,在repo中是文件:
/pipelines/workflow1.Jenkinsfile
/workflow2.Jenkinsfile
/workflow3.Jenkinsfile
Run Code Online (Sandbox Code Playgroud)
我想jenkins创建文件夹结构:
/team/repo/workflow1/master
/dev
/PR1
/workflow2/master
/dev
/feature-xyz
Run Code Online (Sandbox Code Playgroud)
有关我可以从创建项目识别器开始的地方开始的任何想法(如果这是可能的话)?
github bitbucket jenkins jenkins-pipeline multibranch-pipeline
Jenkins Pipeline 插件有一个称为“轻量级结账”的功能,其中 master 只从 repo 中提取 Jenkinsfile,而不是整个 repo。配置屏幕中有一个相应的复选框。我想在多分支管道中进行轻量级结帐,但在多分支配置屏幕中没有看到复选框。任何想法如何做到这一点?我注意到一些已解决的问题表明此功能可用,但我无法找到有关如何实现它的任何细节。
相关信息:
https://issues.jenkins-ci.org/browse/JENKINS-42518
https://issues.jenkins-ci.org/browse/JENKINS-33273
https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/78
我正在设置一个Jenkins多分支实例,当https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin 插件(版本)检测到新分支时,需要在分支作业创建时分配资源。2.21),并在分支不再存在于Git中时由多分支流水线删除分支作业时重新分配它。
(确切地说,我们需要将构建的二进制文件运送到OpenShift部署中,该部署需要为每个分支显式设置和销毁)。
我查看了文档,但尚未找到可对其进行配置的位置。对我而言,未经训练的人认为,将其作为“ stages”节点之外的“ stage”是有意义的,但是对于所有构建而言都是相同的,因此也可以在Jenkinsfile之外使用。
我怎样才能做到这一点?
我们有一个项目配置为多分支管道项目,具有分支过滤主控和开发。几个小时后,主分支被禁用,其名称中带有删除线符号,并且构建选项不可用。
单击“扫描多分支管道”时,它使分支和管道日志显示“分支重新打开”。
最初我们认为这是因为选项“排除拉取请求中包含的分支”,但启用“所有分支”也会一次又一次地禁用主分支。
管道日志没有提供任何明确的指示,说明发生的情况导致其禁用。请帮忙。
我们正在使用 Jenkins( v2.235.1) 和 BitBucket 云组合。我们有BitBucket Team/Project创建multi-branch管道的类型作业。即使 Git 存储库中的这些分支处于活动状态,与各个分支相对应的一些作业也会被禁用。不知道为什么会这样。
能否请您分享一些对此的见解以及我们如何防止这种情况发生。
以下是我的版本
v2.235.1v2.9.7v1.1.27谢谢