2016-04-22 13 views
0

Ich installierte Openshift Origin (neueste) erfolgreich und führte automatisierte Builds durch.Openshift Webhook Zweig Filter

Ie., sobald ich etwas auf master Zweig geschoben habe, bekomme ich einen Build durch einen Git Webhook ausgelöst, mit der URL von Openshift-Trigger zur Verfügung gestellt.

Jetzt möchte ich einen Build nur auslösen, wenn ein bestimmter Zweig aktualisiert wird.

Ich habe einen neuen Zweig dev erstellt und einen neuen Build mit seinem dedizierten Dienst und Route hinzugefügt.

Aber wenn ich master drücke, wird auch der dev Build ausgelöst. Das gleiche passiert für master, wenn ich in dev drücken, obwohl ich Source ref: mit dem richtigen Zweignamen aktualisiert.

Allerdings master Build verwendet die master Zweig, und dev Build ist mit dev Zweig gemacht. Aber ich möchte nur die dev Build ausgelöst werden, wenn ich in dev nur Zweig drücken.

Hier ist die YAML Ausgabe des folgenden Befehl ein: oc get 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/[email protected]:990326b8ad8c4ae2619b24d019b7871bb10ab08c41e9d5b19d0b72cb0200e28c 
    type: ImageChange 
status: 
    lastVersion: 18 

bin ich etwas fehlt?

Vielen Dank

Antwort

0

Ich habe ein Problem auf Github im Zusammenhang mit diesem Verhalten erstellt (GitHub issue #8600). Man sagt mir, ich brauche einen Github-Webhook und keinen generischen Webhook in diesem Fall.

Ich habe die Webhooks auf Github-Typ umgestellt, und es funktioniert wie ein Zauber.

1

Sie zeigen Niederlassung in Ihrem BuildConfig zu meistern:

source: 
    git: 
     ref: master 
     uri: http://git-ooo-labs.apps.10.2.2.2.xip.io/ooo/lol.git 
    secrets: null 
    type: Git 

sondern auf dev zeigen sollte, wie Sie sagen. Im Allgemeinen benötigen Sie separate BC für die master und dev Zweige und jeder hat den Webhook entsprechend konfiguriert. Zusätzlich ist das Format für den Zweig refs/heads/dev, denn das ist die Information, die OpenShift von github erhält.

In der code suchen wir nach übereinstimmenden Zweigen und ignorieren den Haken, wenn es nicht übereinstimmt. Bitte überprüfen Sie noch einmal, und wenn Sie noch ein Problem haben, würde ich Sie bitten, einen Fehler gegen https://github.com/openshift/origin mit detaillierter Beschreibung zu öffnen.

+1

danke für Ihren Kommentar. Ich habe versucht mit dem Format 'ref/heads/dev', aber ich bekomme den folgenden Fehler im Log' Error: Buildfehler: error: pathspec 'refs/heads/dev' hat keine Datei (en) gefunden, die Git bekannt sind.' By the way, build läuft auch auf prod und master env. Ich werde versuchen, eine Bugrequest auf GitHub zu öffnen. – Cicatrice