web-dev-qa-db-ja.com

gitを使用した継続的インテグレーションワークフローの例

継続的インテグレーションに準拠したgitワークフローの大まかな概要を誰でも提供できますか?.
例えば。どのように分岐しますか?コミットをマスターブランチに早送りしますか?

私は主にRailsだけでなく、クライアントおよびサーバー側のJavascriptも使用しています。それらと互換性のある確実なCIテクノロジーを誰かが推奨できる場合、それは素晴らしいことです。Jenkinsを調べましたが、他の良い選択肢をチェックしたいと思います。

これにいくつかのコンテキストを入れるために、私は単一の開発者としての仕事からチームの一員としての仕事に移行することを計画しています。新しい開発者をすぐにオンボードできるように、自分の個人的なワークフローの標準化を開始したいと思います。

シンプルなワークフロー。

  1. CIサーバーが使用する中央Gitリポジトリ
  2. 人々はそのレポの特定のブランチにプッシュします(マスターなど)
  3. CIサーバーはマスターブランチの変更を検出するか、時限ビルドを実行します
  4. CIサーバーは単体テストを実行します
  5. ルールに応じて、CIサーバーはリポジトリーや無数の他のものにタグを付けることができます。

これを行う方法は無数にあり、ワークフローに最適な方法を実行します。

10
sylvanaar
  • 作業
  • ローカルリポジトリにコミットする
  • プッシュ(マスターリポジトリへ)
  • CIが新しいリビジョンを検出
  • CIは新しいリビジョンをチェックアウトします
  • CIが新しいリビジョンをビルドしてテストする
  • CI更新変更ログ(コミットおよびプッシュ)
  • CIがバージョンファイルを作成し、マスターリポジトリにタグを付ける
  • CIパッケージのビルド
  • CIはパッケージをアーティファクトリポジトリ(この場合はYUMリポジトリ)にプッシュします
  • すすぎ、繰り返し

私たちは支店では働きません。私たちは常にトランクにコミットしていますが、不安定性などの一般的な問題を軽減するためにATDDも行います。

4
dietbuddha