パイプラインの親子設定(External config)

パイプラインの親子設定を利用することで1つの親パイプラインが、1つのscrewdriver.yamlで複数の子パイプラインのビルド構成を作成・管理できます。それぞれの子パイプラインのソースコードはそれぞれの子リポジトリから取得してきます。

この機能により、同じワークフローで複数のリポジトリを簡単に管理できます。

親パイプラインでのパイプラインの親子設定方法

親レポジトリのscrewdriver.yamlでは、childPipelinesというキーワードを使うことで、子パイプラインの定義をできます。 ScrewdriverはscmUrlsリストに基づいて子パイプラインを作成、削除します。また、子リポジトリに対しadmin権限を持っていることを確認してください。子パイプラインを管理するために必要となります。

childPipelines:
  scmUrls:
    - git@github.com:minz1027/test.template.git
    - git@github.com:minz1027/quickstart-generic.git#master

jobs:
  main:
    image: node:8
    steps:
      - install: npm install
      - publish: npm publish

親子関係

パイプライン 権限
自身のパイプラインに対する全てのアクションと、子パイプラインへのcreate/delete/update/startアクション
自身のパイプラインに対するdelete/update以外の全てのアクション
また、デフォルトでは親から継承されたSecretsが利用されるが、そのSecretsへの上書き

子パイプラインのビルドは、$SD_CONFIG_DIRにある親パイプラインのリポジトリにアクセスすることができます。

ユーザーインタフェース

親パイプライン UI: External config parent

子パイプライン UI: External config child pipeline

サンプルリポジトリ: https://github.com/screwdriver-cd-test/external-config-example