全体の構成

Screwdriverは継続的デリバリーパイプラインのためのワークフローを簡単にするサービス群です。

Workflow

Workflow

  1. 新しいコードのコミット下記のいずれかの操作により新しいビルドが開始されます。
  1. Screwdriverへ通知

    署名されたwebhooks がScrewdriverのAPIに対して変更を通知します。

  2. ビルド実行エンジンが動作

    Screwdriverに渡されたユーザーの設定やgitの情報を元に、指定されたビルド実行エンジンでビルドを開始します。

  3. ソフトウェアのビルド

    要求されたビルドコンテナ内でgitからソースコードをチェックアウトし、ユーザーの設定を元にScrewdriverのLauncherがコマンドを実行します。

  4. アーティファクトのパブリッシュ (任意)

    生成されたアーティファクトを各自のリポジトリに任意で送信できます。(RPM、Dockerイメージ、Nodeモジュールなど)

  5. パイプラインの続行

    ジョブの完了後にScrewdriverのLauncherがAPIに通知し、後続のジョブがあればAPIにより次のジョブがビルド実行エンジンで開始されます(3へ)。

コンポーネント

Screwdriverには5つの主要コンポーネントがあり、最初の3つはScrewdriverによりビルド・メンテナンスされています。

executor-queue と k8s のアーキテクチャ

Architecture