- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 Jenkins 工作来构建我的 GitHub 存储库的 master
分支。当我将提交推送到 master
时,它会很好地触发,我对此感到非常高兴。
我还希望有一个 Jenkins 作业可以在此存储库中构建任何其他分支。 IE。每当我将提交推送到一个分支(不是 master
)时,我都希望有这个 Jenkins 作业来构建该分支,并且只构建该分支。
使用 GitHub pull 请求插件需要我创建一个 pull 请求,并将我的提交与 master
merge 。我想这样做而不必创建 pull 请求,并且只构建我的提交而不将其与 master
merge 。
设置 Git 插件来构建所有分支意味着每当我推送到 master 时,所有分支都会被构建。我只想构建一个已修改的分支。
这在 Jenkins 中可行吗?
最佳答案
我遇到了同样的问题,所以我设置了一个虚拟项目进行试验并找到了解决方案。并且发现是的,您可以仅构建已被 push 的分支。
简短的回答是使用“分支说明符”。例如origin/feature**
.
如果您使用的是 GitFlow并且所有功能分支都以 feature/
命名前缀,那么这就是解决方案。
如果你很好奇,我是如何想出来的。
在存储库的设置中,我使用 Jenkins Hook 设置服务 “Github 插件” https://<jenkin server>/github-webhook/
.请注意,至少对我来说发生的事情是,由于某种原因在按下 “测试” 后,发送的有效负载消息从未更改以确认它已被接收/确认或任何东西。也许没有回复。这令人困惑,但无论如何......
我创建了一个新的 Jenkins 作业并将 branch specifier 设置为 blank - Jenkins 然后会自动设置至 **
.
我创建了一个特性分支 feature/foo
并 push 其中。
master
分支机构。feature/foo
上启动分支机构。看来 **
或空白说明符,只要有推送到它们中的任何,插件就会在 repo 的所有分支上触发构建。
然后我尝试使用模式 refs/heads/feature/foo
并将另一个更改推送到 feature/foo
分支机构。
feature/foo
上启动分支机构。还可以,但是太死板了。这将迫使我们为每个功能分支创建一个构建作业。我想要为所有 功能分支创建一个构建作业。
然后我尝试使用模式为 refs/heads/feature\*\*
的通配符并将更改推送到 feature/foo
.
然后我尝试了分支说明符 refs/heads/feature/\*\*
并 push 。
然后我看到“Branch Specifier” 字段的帮助在“通配符”部分下读取此内容:
The syntax is of the form:
REPOSITORYNAME/BRANCH
. In addition,BRANCH
is recognized as a shorthand of*/BRANCH
,*
is recognized as a wildcard, and**
is recognized as wildcard that includes the separator/
. Therefore,origin/branches*
would matchorigin/branches-foo
but notorigin/branches/foo
, whileorigin/branches**
would match bothorigin/branches-foo
andorigin/branches/foo
.
所以我尝试了origin/feature**
origin/feature/foo
启动. Eureka !似乎您不能对引用使用通配符(以 refs/
开头),但您可以使用实际分支的名称(以 origin/
开头)。
然后我创建了分支 feature/bar
并推向它。验证是否只构建这个分支,而不是其他以 feature/
开头的分支.
origin/feature/bar
启动.看的差不多了。只需要再进行一些测试。
然后我将另一个更改推送到 origin/master
然后我将另一个更改推送到 feature/bar
, 以测试是否只构建此分支。尽管 origin/master
也被 push 了。
feature/bar
启动.我觉得不错。
关于git - 仅构建已推送到的 Git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403576/
我正在尝试将多个值放入数组中。 当我使用时: csvData.push('data[0][index],data[1][index],data[2][index],data[3][index]');
我想在数组声明中直接使用函数 push(),但它不能正常工作。在我的示例中,我的数组返回值 2 : var j = ["b"].push("a"); document.write(j); // ret
我编写了以下Powershell,它为所选文件夹中的所有驱动程序创建了一个bat安装程序,然后应重新启动PC。 New-Item C:\Tools\Drivers\DellLatitude3450.b
例: $ git clone git@gitlab:carlos/test.git Cloning into 'asd'... ssh: connect to host gitlab port 22:
我正在构建一个具有数组类型属性的对象数组: 这里是一些简化的代码: var _data = []; for(var i=0;i<10;i++) { var element = {
我有一个简单的 PHP/MySql 应用程序,它通常会选择几个数据库之一(假设每个客户一个)进行操作。但是,经常调用访问公共(public)数据库的实用程序函数。 我不想在我的代码中散布 USE 子句
我在推送 View Controller 时遇到问题。这就是我所做的:单击一个按钮,我使用这段代码添加了一个模态视图,我工作正常: - (void)addAction:(id)sender {
我想为socket can写一个android系统服务器。我目前正在设计这个,想知道是否有任何方法可以在 Linux/POSIX 套接字上的数据是否可用而无需调用 read() 并随时轮询结果的情况下
我正在编写一个 Bootstrap 站点,我想知道这是否可以接受。该网站看起来像我想要的那样,但我想知道这是否是最佳做法? 我采用的方法是对每两个缺失的列使用 1 个偏
删除远程分支是通过: git push origin :master 如果本地在远程之后,则需要完成: git push --force origin :master 但是强制删除例如master 基
假设我有一个 git 服务器。在每次推送时,我都需要启动一个进程,我可以通过一个钩子(Hook)来完成。 需要将进程的标准输出写入执行推送的 git 客户端。这与 Heroku 或 Openshift
我刚刚开始学习 Git,有些事情我无法解决。在我的 Mac 上本地创建和使用 git 存储库后,我可以将副本推送到其他地方的另一台服务器吗?我在防火墙后面,所以不幸的是我无法从另一台机器运行 git
这个问题在这里已经有了答案: warning: remote HEAD refers to nonexistent ref, unable to checkout (13 个答案) 关闭 7 年前。
我已经安装了 SCM Sync 配置插件(0.0.10)来将我的 jenkins 设置保存在我的 git 存储库中。 我已经设置了 git url 存储库但插件没有提交/推送,请看截图 我试过: 私钥
这可能看起来很矛盾,我知道 secret 变更集是私有(private)的,但是如果我想备份这些 secret 变更集怎么办? 我与一些分支并行工作,有时我想插入一个,而不是其他的。为了实现这一点,我
我正在使用 TortoiseHg用于版本控制。提交到本地后,我推送到远程存储库。如何撤消到特定的提交点? 有三个不同的插入,我想恢复到第一个插入。我读到了 Mercurial 回滚和 hg 撤销 命令
我知道以前有人问过这个问题,但我似乎无法理解这件事...... git checkout master git pull git git checkout feature git rebase ori
下面的代码片段中 return { Push:function ..... 的含义是什么?当我用谷歌搜索时,我发现push()方法将新项目添加到数组的末尾,并返回新的长度。所以我不确定什么是push:
我正在使用 Mercurial 1.6。我有一个带有几个子存储库的存储库 (11)。我想将父存储库推送到默认远程存储库,而不推送子存储库。想要这样做的原因包括: 我使用的是 SSH 存储库,需要很长时
我分配了一个按钮来将 segue 推送到另一个 View Controller ,但是当我执行这部分代码时,我得到以下信息: 2014-02-20 10:44:29.357 nar[20244:70b
我是一名优秀的程序员,十分优秀!