Git Openshift webhook分支过滤器

Git Openshift webhook分支过滤器,git,git-branch,webhooks,openshift-origin,Git,Git Branch,Webhooks,Openshift Origin,我成功地安装了Openshift Origin(最新版本),并执行了自动构建 也就是说,一旦我在master分支上推送了一些东西,我就会使用Openshift触发器提供的URL,通过git webhook触发一个构建 现在,我只想在更新特定分支时触发构建 我创建了一个新的dev分支,并添加了一个带有专用服务和路由的新构建 但是当我推入master时,也会触发dev构建。当我推入dev时,master也会发生同样的情况,尽管我用正确的分支名称更新了Source ref: 但是,masterbuil

我成功地安装了Openshift Origin(最新版本),并执行了自动构建

也就是说,一旦我在
master
分支上推送了一些东西,我就会使用Openshift触发器提供的URL,通过git webhook触发一个构建

现在,我只想在更新特定分支时触发构建

我创建了一个新的
dev
分支,并添加了一个带有专用服务和路由的新构建

但是当我推入
master
时,也会触发
dev
构建。当我推入
dev
时,
master
也会发生同样的情况,尽管我用正确的分支名称更新了
Source ref:

但是,
master
build使用
master
分支,而
dev
build使用
dev
分支完成。但是,我只希望在推入
dev
分支时触发
dev
构建

下面是以下命令的YAML输出:
ocget buildconfigs lol master--output=YAML

apiVersion: v1
kind: BuildConfig
metadata:
  annotations:
    openshift.io/generated-by: OpenShiftWebConsole
  creationTimestamp: 2016-04-22T06:02:16Z
  labels:
    app: lol-master
  name: lol-master
  namespace: lol
  resourceVersion: "33768"
  selfLink: /oapi/v1/namespaces/lol/buildconfigs/lol-master
  uid: c3d383c3-084f-11e6-978b-525400659b2e
spec:
  output:
    to:
      kind: ImageStreamTag
      name: lol-master:latest
      namespace: lol
  postCommit: {}
  resources: {}
  source:
    git:
      ref: master
      uri: http://git-ooo-labs.apps.10.2.2.2.xip.io/ooo/lol.git
    secrets: null
    type: Git
  strategy:
    sourceStrategy:
      from:
        kind: ImageStreamTag
        name: ruby:latest
        namespace: openshift
    type: Source
  triggers:
  - github:
      secret: cd02b3ebed15bc98
    type: GitHub
  - generic:
      secret: 7be2f555e9d8a809
    type: Generic
  - type: ConfigChange
  - imageChange:
      lastTriggeredImageID: centos/ruby22-centos7@sha256:990326b8ad8c4ae2619b24d019b7871bb10ab08c41e9d5b19d0b72cb0200e28c
    type: ImageChange
status:
  lastVersion: 18
我错过什么了吗


非常感谢您在BuildConfig中指向主分支:

 source:
    git:
      ref: master
      uri: http://git-ooo-labs.apps.10.2.2.2.xip.io/ooo/lol.git
    secrets: null
    type: Git
但是应该指向
dev
,正如您所说。通常,
master
dev
分支需要单独的BC,每个分支都会相应地配置webhook。此外,分支的格式为
refs/heads/dev
,因为这是OpenShift从github获得的信息


在中,我们检查匹配的分支,如果不匹配,则忽略挂钩。请再次检查,如果您仍然遇到问题,我会要求您打开一个带有详细说明的bug。

我在Github上创建了一个与此行为相关的问题()。有人说我需要使用Github webhook,而不是本例中的通用webhook


我将webhooks切换到github类型,效果非常好。

谢谢您的评论。我尝试使用格式
ref/heads/dev
,但在日志
错误中出现以下错误:生成错误:错误:pathspec“refs/heads/dev”与git已知的任何文件都不匹配。
。顺便说一下,构建也在prod和masterenv上运行。我将尝试在GitHub上打开一个bugrequest。你能告诉我在哪里可以学习
“添加一个新的构建及其专用服务和路由”
-我也想创建一个OpenShift应用程序的“开发版本”,但不确定如何启动。我想我只需要在OpenShift中为开发人员创建另一个项目(可能是“克隆”生产应用程序?),在GitHub中创建一个
“development”
分支,并修改新项目的构建配置以使用
“development”
分支?