GitLab CI を使用して継続的デリバリーを実装する方法について頭を悩ませようとしてきましたか?
CD について私が読んだすべてのソリューションは、マルチステップ パイプライン (Jenkins など)、または Webhook をリッスンし、デプロイ用の独自のインターフェイスを提供するカスタム アプリケーション (たとえば、GitHub の HuBot + Heaven + Janky) に依存しています。
マスター ブランチで CD を実行することのみに関心があり、テスト スイート/デプロイの手順が非常に高速である場合は、GitLab CI によって実行されるシェル スクリプトの一部として単純に含めることができます。スイートは高速ではありませんか?それとも、パッケージのダウンロードなどに数分かかることがありますか? 次に、CI ランナーは作業に忙殺されます。
私が思いつく最善の解決策は次のとおりです。
- GitLab および GitLab CI から Web フックを受け入れる Web アプリケーションを作成し、作成された個々のコミットとビルド ステータスを追跡します。
- 渡された Webhook ごとにステージング サイトへの配信を試みる独自のカスタム ランナーを起動します。アプリケーションは、展開/ロールバックを容易にするために、たとえば fabistrano を使用できます。
- すべてのテストに合格した GitLab で受け入れられている master にマージするためのマージ リクエストをリッスンします。
何かご意見は?GitLab CI で CD を実装した人はいますか?