2016-04-22 4 views
0

Openshift Origin(最新)をインストールし、自動ビルドを実行しました。Openshift Webhookブランチフィルタ

私は、一度masterブランチに何かをプッシュすると、Openshiftトリガーによって提供されたURLを使用して、git webhookを通じてトリガーされたビルドを取得します。

今、特定のブランチが更新されたときにのみビルドをトリガーしたいと思います。

新しいdevブランチを作成し、専用のサービスとルートで新しいビルドを追加しました。

しかし、masterをプッシュすると、devビルドもトリガーされます。私はSource ref:を正しいブランチ名で更新しましたが、devを押すと同じことがmasterに発生します。

ただし、masterビルドはmasterブランチを使用し、devビルドはdevブランチで行われます。しかし、devブランチだけをプッシュすると、devビルドがトリガーされるようにしたい。ここで

は、次のコマンドのYAML出力である: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 

私は何かが足りないのですか?あなたのBuildConfigに支店を習得することを指している

感謝

答えて

0

私はGithubにこの動作に関する問題を作成しました(GitHub issue #8600)。私はGithubウェブフックを使用する必要があり、この場合一般的なウェブフックではないと言われています。

ウェブフックをgithubタイプに切り替えました。これは魅力的です。

1

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から取得する情報だからです。

codeここでは、一致するブランチをチェックし、一致しない場合はフックを無視します。もう一度確認してください。まだ問題が発生している場合は、https://github.com/openshift/originのバグを詳細に記述してください。

+1

ご意見ありがとうございます。私はフォーマット 'ref/heads/dev'を使ってみましたが、ログ' Error:build error:error:pathspec 'refs/heads/dev'がgitで知られているファイルと一致しません。ちなみに、ビルドはprodとmaster envでも実行されています。私はGitHubでバグリクエストを開こうとします。 – Cicatrice