設定ファイルの結合は、
circleci config pack
で行えます。今はこの<directory-name>
がconfig
ということにします。
例えば、config/
以下はこのような構造になります。
config
├── executors
│ └── alpine
│ ├── @docker.yml
│ └── environment.yml
├── jobs
│ └── build.yml
└── meta.yml
各.yml
ファイルがそれぞれ分割によって生まれたファイルです。慣れてる人にはディレクトリー構造に見覚えがあるかもしれませんがその通りで、分割と言ってもだいたいの場合は、ディレクトリー構造やファイルのベース名(environment.yml
でいうenvironment
)がそのまま YAML の構造になるだけです。例えばenvironment.yml
であれば、
executors:
alpine:
environment:
# `environment.yml` の中身
のようになります。
例外として@
から始まるファイル(@docker.yml
)は少し変わり、ベース名を構造化しません。つまり以下ではなく、
executors:
alpine:
'@docker':
# `@docker.yml`の中身
こうなります。
executors:
alpine:
# `@docker.yml`の中身
どう解釈されるかが分かったので結合してみます。circleci config pack config/
の結果はこうなりました。
executors:
alpine:
'@docker':
- image: alpine
environment:
TOKEN: foobarbaz
jobs:
build:
executor: alpine
steps:
- run: ':'
version: 2.1
ちなみにjobs/build.yml
とversion.yml
はそれぞれ以下でした。
executor: alpine
steps:
- run: ":"
version: 2.1