ProGitに記載されているのと同様の変更されたインテグレーションマネージャワークフローを実装しようとしています。代わりにマージを実行するintegration manager
のJenkins/Hudsonを使用したインテグレーションマネージャGitワークフロー
、私は開発者がコードを公開する前にローカルでマージしたい、と私はそのようなコードカバレッジと100の最小レベルとして、当社の継続的な統合の基準を、強制Quality Gateway
をしたいです他の開発者がチェックアウトするためにコードが祝福されたリポジトリに入ることを許可する前に、%テストは合格します。アイデアは、祝福されたリポジトリのコードは、常に私たちが定義し、常に構築する最小限の標準を満たしているということです。
ビルドが成功したときにジェンキンスが品質ゲートウェイの役割を果たし、祝福されたリポジトリにコードをプッシュするだけです。
これまでのところ、私は祝福されたリポジトリ、ジェンキンスの構築サーバー上のリポジトリ、gitosisを通じてアクセスされた裸のリポジトリ、もちろん開発者自身のリポジトリであるようにシステムを設定しました。
私は、恵まれたレポから引き離して統合リポジトリにプッシュする開発者を抱えています。今、私はJenkinsにインテグレーションレポから成功したビルドを祝福されたレポにプッシュさせようとしています。
私が達成しようとしているのと同じように見えた唯一の選択肢は、Jenkinsのプロジェクト構成の投稿構築アクションのGit Publisher設定の "Push Only If Build Succeeds
"オプションです。ただし、このオプションでは、push urlまたはpush to remoteを指定することはできません。
私が理解しているように、Git Publisherの設定では、Repo JenkinsのクローンがJenkinsのパブリックリポジトリに戻ってワークスペースにプッシュされますが、別のリモートの恵まれたリポジトリにプッシュしたいと思います。
ジェンキンスがどのように祝福されたレポに押し寄せるようになるのですか?
EDIT 0: 私は私の祝福されたリポジトリにpushコマンドを実行する後工程を入れてみました。これはエラーがないという点で、動作するようです。しかし、何も変更はプッシュされていないされているとログがGitは、すべてが最新であると考えていることを示しています
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 7 seconds
[INFO] Finished at: Fri Nov 18 16:10:50 UTC 2011
[INFO] Final Memory: 19M/45M
[INFO] ------------------------------------------------------------------------
channel stopped
[My Project] $ /bin/sh -xe /tmp/hudson5604254372179801803.sh + git push [email protected]:my-project.git --all
Everything up-to-date
そこは間違いなくあるので、Gitは、プッシュする何もないと考えて、なぜ私にはわかりません。
興味深いように見えますが、私たちの現在のプロセスが持っていないのは、正式なレビュープロセスだけです。私たちのプロジェクトはメイベナイズされているので、ビルドに合格すれば、私たちが定義したテストやその他の要件に合格します。私たちの環境を複雑にする別のツールを持つことを正当化するのに十分な(プロセスに)追加するようには見えません。私は、私のニーズが変わっても、心に留めておきます、ありがとう! – chrisbunney
私は複雑さを制限する必要性を理解しています:-)私は、両方のレビューを追加し、あなたの恵まれたレポにコミットする前に、CI /テストの結果を各変更に報告するということです。 –
さて、私たちがその段階に来ると良いでしょう:) – chrisbunney