私が取り組んでいる複数のマイクロサービスを収容するモノレポ (git) があります。プッシュ時に、サード パーティのビルド サービスがこのプッシュを検出し、ビルドとデプロイの処理を開始します。
これはうまくいきます。しかし今、私はこのプロセスを最適化しようとしており、私が取り組んできた特定のサービスのみを構築したいと考えています。これは、ビルド サービスが変更されたフォルダーを検出し、それらのサービスのみをビルドする必要があることを意味します。
GIT_COMMIT_RANGE 環境変数があるため、このプロセスが Travis でうまく動作するようになりました。したがって、最新のプッシュですべてのコミットを取得し、それらすべてのコミットで変更されたフォルダーを取得できます..これは非常にうまく機能します..しかし、 travisでのみ.
Travis を切り取り、GCP または使用している他のサードパーティ コンテナー ビルダーで直接 Docker イメージをビルドしたいのですが、変更されたフォルダーのみをビルドしたいと考えています。
git commit フックでこれを行うことができるかもしれないと考えています。このフックを使用して、ビルド サーバーがビルドするようにマークするフォルダーのリストの生成を開始したり、ビルド ファイル (cloudbuild.yaml) の生成を開始したりすることもできます。次に、いくつかの git プッシュ フック (ポスト プッシュ フックもあります) で、cloudbuild.yaml ファイルの内容をローカルにリセットしました。