2

私の職場では、デプロイとコードの変更を処理するために、Git に基づいたワークフローを設計しようとしています。

Java EE Web アプリケーションと 3 つの展開環境 (テスト、QA、および本番) があります。ビルドとデプロイを処理するための Jenkins CI のインスタンスもあります。

(ブランチで) アプリケーションのコードに変更が加えられた場合、どれを QA および Production に昇格させるかを選択できる必要があります。一部のユーザーは、QA に到達した後、本番環境に移行することはありません。

また、プロモートやマージの際に、誤って他の人のコードをブランチに含めないようにする必要もあります。

ブランチの「プロモーション」も自動化する必要があります。アナリストがブランチまたは変更セットを選択し、ジェンキンスまたはその他のスクリプトが実際のマージとデプロイを行うようにします。ここでマージの競合が問題になっていることがわかります...

これらの要件を処理するために、Git リポジトリをどのように設定することをお勧めしますか?

4

1 に答える 1

1

「 Git を使用したコードのプロモーション」で述べたように、開発作業を分離する方法はブランチだけではないことを忘れないでください (環境全体でのプロモーションなど)

git リポジトリ自体もあり、git リポジトリを特定の役割 (「テスト」リポジトリ、「QA」リポジトリなど) に割り当てることができます。

Gitoliteと組み合わせると、開発ライフサイクルの特定の段階に直接プッシュしてはならないユーザーによるアクセスからこれらのリポジトリを保護できます。

また、保護された commitと組み合わせると、次のようなテスト リポジトリにプッシュできます。

  • コンパイルおよび/または特定の単体テストに合格しない場合、コミットを拒否します
  • またはそれを受け入れて、レビューのために QA リポジトリに自動的にプッシュします。
于 2012-11-30T21:14:02.637 に答える