設定ファイルの結合は、
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