ソースディレクトリ
ソースディレクトリはパイプラインのベースとなるカスタムディレクトリを指定できます。ScrewdriverのUIでパイプラインを作成したときや、ディレクトリを追加するために現在のパイプラインをを更新するときに指定可能です。これはmonorepoのサブディレクトリに基づいてワークフローを実行する際に有用です。カスタムソースディレクトリを使えば、単一のリポジトリで複数パイプラインを作成することが可能です。
ソースディレクトリのフォーマット
ディレクトリパスはリポジトリのルートからの相対パスとなります。ソースディレクトリの下にはscrewdriver.yamlが一つ有る必要があります。
Example
リポジトリのファイル構成を表すと以下のようになります:
┌── README.md
├── screwdriver.yaml
├── myapp1/
│ └── ...
├── myapp2/
│ ├── app/
│ │ ├── main.js
│ │ ├── ...
│ │ └── package.json
│ └── screwdriver.yaml
│
...
ソースディレクトリを利用してパイプラインを作成

ソースディレクトリを利用してパイプラインを更新

この例では、requires: [~commit, ~pr]としているジョブは、myapp2ディレクトリ以下のファイルに変更が発生した場合にトリガーされます。
サンプルリポジトリ: https://github.com/screwdriver-cd-test/source-dir-example
注意点
- ソースパスとカスタムソースディレクトリを同時に使う場合には、
ソースパスのスコープをソースディレクトリに限定してください。Noteソースパスのパスはリポジトリのルートからの相対パスであり、ソースディレクトリではありません。- 例えば、
main.jsとscrewdriver.yamlの変更を検知するためにソースパスを追加する場合以下のように設定します:sourcePaths: [myapp2/app/main.js, myapp2/screwdriver.yaml]sourcePaths: [app/main.js]と設定した場合、動作しません。ソースディレクトリにmyapp2が欠けており、相対的にソースパスを設定できません。sourcePaths: [myapp1/test.js]と設定した場合、動作しません。これはソースディレクトリであるmyapp2のスコープの外であるためです。
- 例えば、
screwdriver.yamlはカスタムソースディレクトリのルートに配置されている必要があります。