私は人々から多くの人から聞いていますトランクベースの開発。私はトランクベースの開発を行うときにJenkinsとの継続的な統合がどのように機能するのか理解していません。組織のバージョン管理にgitを使用します。Jenkinsはトランクベースの開発を使用するとビルドします
Jenkinsのジョブは、gitを変更するためにgitをポーリングするように設定されています。もしビルド中に検出され、ビルドが成功したら、deployを開始します。
すべての開発者はジェンキンスにアクセスでき、別のブランチで開始するようにビルドを構成できます。このコードは、テストのためにdevインスタンスにデプロイされます。開発者は、正常であると判断した場合、ジェンキンを再構成してマスターを指すようにビルドします。これはマニュアルであり、これを行うのは開発者の責任です。
定期的に実行され、Jenkinsジョブを標準ジョブで上書きするパイプラインジョブがあります。したがって、開発者が構成をねじから去っても、Jenkinsはビルドを正常な状態に保ちます。
フィーチャー/バグフィックスブランチを複数コミットして作業していますが、CI/CDプロセスのベストプラクティスは何ですか?
a)開発者は、それぞれのコミットの後でブランチをポイントし、devインスタンスにデプロイします。これは私が知る限りマニュアルであり、開発者はこれを簡単に忘れることができます。
b)開発者は、引き出し要求を作成してdevインスタンスにデプロイする前に、Jenniferビルドを支店にビルドするように指示します。コミットが複数ある場合は、コミットのためにビルド/デプロイメントが失敗する可能性があります。これもマニュアルであり、デバッグには苦労する可能性があります。
c)開発者は、ビルドをローカルで実行して、テストが合格することを確認します。展開は暗い芸術であり、他の誰かが理解できるように残されます。プルリクエスト後、ジェンキンズはビルドを実行して、すべてのテストが成功することを確認します。これは自動的です。ビルド/デプロイメントが失敗した場合、開発者は何がうまくいかなかったかを把握できます。