7

GitLab CI を使用して継続的デリバリーを実装する方法について頭を悩ませようとしてきましたか?

CD について私が読んだすべてのソリューションは、マルチステップ パイプライン (Jenkins など)、または Webhook をリッスンし、デプロイ用の独自のインターフェイスを提供するカスタム アプリケーション (たとえば、GitHub の HuBot + Heaven + Janky) に依存しています。

マスター ブランチで CD を実行することのみに関心があり、テスト スイート/デプロイの手順が非常に高速である場合は、GitLab CI によって実行されるシェル スクリプトの一部として単純に含めることができます。スイートは高速ではありませんか?それとも、パッケージのダウンロードなどに数分かかることがありますか? 次に、CI ランナーは作業に忙殺されます。

私が思いつく最善の解決策は次のとおりです。

  1. GitLab および GitLab CI から Web フックを受け入れる Web アプリケーションを作成し、作成された個々のコミットとビルド ステータスを追跡します。
  2. 渡された Webhook ごとにステージング サイトへの配信を試みる独自のカスタム ランナーを起動します。アプリケーションは、展開/ロールバックを容易にするために、たとえば fabistrano を使用できます。
  3. すべてのテストに合格した GitLab で受け入れられている master にマージするためのマージ リクエストをリッスンします。

何かご意見は?GitLab CI で CD を実装した人はいますか?

4

1 に答える 1