2017-08-31 13 views
0

次のツールが使用されています:zuul、Gearman、Jenkinsでgitサブモジュールの親リポジトリを処理するにはどうすればいいですか?

  • ジェンキンス(パイプラインジョブ)
  • プロジェクトの設定をGearmanが含ま

    • ヘリット
    • Openstack/Zuul
        • gitリポジトリとして "parent"プロジェクト。
        • gitリポジトリとして "child"プロジェクト。
        • "parent"はサブモジュールとして "child"を構成しています。
        • Zuulは、両方のプロジェクトのGerritレビューzuul-pipelineとGerrit merge zuul-pipelineで構成されています。

        私が達成したいのは、レビューまたはマージビルドが「子」プロジェクトから開始され、その変更が正確に「親」プロジェクトのビルドが開始された場合です。どうやって?

        私は現在、次のように改造しています。私はサブモジュールのURLを1つのビルドのためだけに青から変更することができないため、悲しいことに今は動作しません。 Zuul構成は:だから理由は、実際の

        projects: 
        - name: parent 
            review: 
            - review-job 
        
        - name: child 
            review: 
            - review-job: 
             - review-parent-with-change-of-child-job 
        

        ジェンキンス内部の典型的なZuul仕事はほんの一部$ZUUL_URL持っていること、(審査が問題を説明するのに十分であるので、私は、マージ部分をスキップしました)/$ZUUL_PROJECT config insideとJenkinsfileへのリンク私は、子供の変更を伴う親のレビューのために特別な仕事を書かなければならない。最終的には、Zuul Mergerのリポジトリからサブモジュールが変更された "親"のマスターブランチのビルドだけです。

        Zuul Mergerのリポジトリからの変更は、.gitmoduleファイル内のURLを変更することでチェックアウトすることができます。それは私の意見では、このようなビルドを行うための純粋な方法ではないので、私は他の解決策を探しています。 Zuulとサブモジュールを持つプロジェクトに関するドキュメントはほとんどゼロであるため、私はここで固執しています。

        私はまだこれを達成しようとしています(まだテストされていません)が、もしあれば、より穏やかで安全な方法に変更したいと思います。

    答えて

    0

    .gitmodulesを変更することは、基本的にはただのものです。

    ただし、変更する必要はありません。私は最初これを認識しませんでした。

    Zuulレポのプルは、あなたのジェンキンスで十分である。このようなファイル:

    sh ''' 
    cd path/to/your/submodule 
    git pull $ZUUL_URL/$ZUUL_PROJECT +$ZUUL_REF:refs/heads/zuul 
    ''' 
    

    そして、あなたのサブモジュールは、あなたがあなたのビルドでテストしたいの変更が含まれています。

    関連する問題