问题标签 [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.

0 投票
1 回答
2240 浏览

jenkins - 多分支管道 - Jenkins - 如何一次执行一个分支?

各位圣诞快乐,

我有一个非常基本的问题,我在那里没有找到:

如何一次建立一个分支?

我实际上在我的多分支管道 Jenkins 流程中设置了两个分支。但是,当我点击运行时,如果没有更改,则两者都是同时构建的,这是由于单元测试使用相同端口而导致的问题。

这就是为什么我需要一次运行一个分支。

有什么办法可以做到这一点吗?

0 投票
3 回答
6653 浏览

jenkins - 在多分支管道上触发分支索引 (Jenkins/Git)

我正在尝试在 Jenkins 的多分支管道作业上自动触发“分支索引”。

目前,似乎只有一种方法实际上有效,即轮询,但我无法做到这一点,而且轮询无论如何都是一个糟糕的解决方案。

该插件不支持“远程触发构建(例如,从脚本)”(不保存选项),因此我无法通过推送等网络挂钩触发它。

我尝试在 repo 上创建一个“触发”自由式构建,但“构建后操作 - 构建其他项目”声称 Multibranch Pipeline 项目不是可构建项目。

如果轮询是我能做到这一点的唯一方法,那么我需要禁用自动 SCM 触发(否则我们在重新索引时会得到重复的构建),因为我需要在分支项目上启用 web 挂钩触发。

但这不起作用,因为我正在通过分支项目中的管道脚本设置 Web 挂钩,并且您需要至少构建一次才能注册该属性。

我一直在兜圈子,所以希望我只是错过了一些明显的东西,但任何帮助将不胜感激。

我想象能够执行以下操作之一

  • 以某种方式触发多分支项目作为下游项目

  • 轮询多分支项目,只构建之前没有构建的分支项目

干杯

0 投票
1 回答
1033 浏览

.net - Jenkins 多分支管道中的 Git 提交和推送问题

我正在 Jenkins 中开发一个多分支管道,用于构建 .Net 应用程序并在 Windows 服务器上使用 msbuild 创建 ms 测试结果。我为此写了一个jenkinsfile。

现在的问题是,我需要提交 mstest 结果文件并将其推送到 git 上的同一分支。我尝试在 jenkinsfile 中使用 'bat' 来做同样的事情,但它给了我Detached head state. 以下是 jenkinsfile 配置:-

0 投票
3 回答
12664 浏览

github - 将代码更改推送到 GitHub 时如何触发 Jenkins 多分支管道

multibranch pipeline为 GitHub 存储库设置了 Jenkins 作业 ( )。每当有更改推送到该 Git 存储库时,我想自动触发该作业。我怎样才能使用 a 来实现这一点Jenkinsfile

我想避免 Jenkins 作业中的任何配置更改,例如Poll SCM等。对于多分支管道,没有这样的选项Build whenever a change is pushed to GitHub

0 投票
1 回答
996 浏览

svn - svn multibranch 更改 jenkins ci 中的基础

我已经为一个多分支 svn 项目设置了一个 jenkins 实例,该实例由一个将受影响的分支的名称作为参数传递给 jenkins 的提交后挂钩触发。
Jenkins 然后从给定分支检查源并编译它们。这在一个限制条件下效果很好。
如果构建“x”和“x+1”确实在同一个分支上运行,jenkins 会向我显示提交的更改,这会在构建的更改链接下触发构建“x+1”。如果构建“x”和“x+1”在不同的分支上运行,我会在 jenkins 中得到一个空的更改列表和“前一个构建中没有记录的修订”行。
我现在的问题是:我如何让詹金斯不基于以前的构建进行更改,而是基于同一分支进行最后一次成功构建?

0 投票
2 回答
1753 浏览

jenkins - 如何在多分支项目中按顺序而不是并行运行作业

我在 Jenkins 中配置了一个多分支管道项目。这个项目在我所有的功能分支(git)上运行集成测试。对于管道项目中的每个作业,它都会创建我的 webapp 的一个实例(启动 tomcat 和其他依赖项)。由于端口绑定问题,这会导致许多工作中断。

我可以限制多分支管道项目中的构建,以便每个功能分支的作业顺序运行而不是并行运行吗?

或者是否有更优雅的解决方案?


编辑:情况和问题:

  • 我想在 Jenkins 中有一个多分支管道项目(因为我在 git 中有很多功能分支)
  • 从多分支管道创建的作业(对于 git 中的每个功能分支)并行运行
    • 轮询 scm 是在午夜(x 分支上的提交是新的,因此相关工作在午夜开始)
  • 每项工作都启动了我的 webapp(和其他依赖项)的一个实例,该实例绑定到某些端口

问题是,许多这样的工作可以在午夜开始。每项工作都会尝试启动我的 webapp 的一个实例。第一份工作可以毫无问题地启动webapp。第二个作业无法启动 webapp,因为端口已经从第一个实例中获取。

我不想为我的 git 存储库中的每个功能分支配置新的端口绑定。我需要一个解决方案来限制多分支管道中的构建,以便只有“功能”才能同时运行。

0 投票
5 回答
131932 浏览

jenkins - 如何在 Jenkinsfile 中设置和引用变量

我的多分支项目有一个声明性管道脚本,我想在其中读取一个文本文件并将结果存储为字符串变量,以便管道中的后续步骤访问。使用片段生成器我尝试做这样的事情:

为此filename将是我的字符串。

我在 Jenkins 控制台输出中收到错误:

我是否需要使用一个withEnv步骤来设置输出readFile为 Jenkins 环境变量?如果是这样,怎么做?

谢谢

0 投票
3 回答
41385 浏览

jenkins - 如何在 Jenkinsfile if 语句中使用 jenkins 环境变量

我正在尝试在我的 Jenkinsfile 中为多分支管道项目使用 if 语句。为了这个问题,假设我的当前目录中有一个名为“scan.txt”的文本文件。文本文件是使用 bash 命令生成的

所以唯一的内容是字符串“False”

我在 Jenkinsfile 中将任意环境变量设置为 scan.txt 的内容,如下所示:

如果我做

在脚本块之外,jenkins 控制台按预期显示该步骤的 False 。

但是,我检查它是否等于“False”的所有尝试都失败了。我在脚本块之后立即尝试了以下操作:

他们都没有工作。所有这些条件都是布尔假。读取文件管道步骤的文档指出它返回文件内容的字符串 https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-readfile-code-read-file-from-工作区 ,所以我不确定这里发生了什么。有没有人有任何见解?

谢谢

0 投票
1 回答
1131 浏览

jenkins - How to change the default timeout for the Jenkins Artifactory plugin in a Multibranch Pipeline job?

I have a Jenkins Multibranch Pipeline build job that is uploading a rather large number of big files to Artifactory, and therefore the upload step is taking longer than the default 5 minute limit defined in the Artifactory Jenkins plugin:

How can I specify a longer timeout in my Jenkinsfile so my build jobs can get successfully uploaded and stop failing?

0 投票
1 回答
517 浏览

jenkins - How to invoke action on branch removal for multibranch pipeline

Working with a multibranch jenkins pipeline (Jenkinsfile defined) - what techniques do people use for performing actions when the branch no longer exists?

EG. Get Jenkins to perform removal of resources on a cloud provider such as AWS when a branch no longer exists.