drone.io でビルドを並列実行する
この記事は drone.io Advent Calendar 2017 - Adventar の15日目の記事です。
drone.io は Goで作られたオープンソースのCD (Continuous Delivery)環境です。
通常 pipeline
に書いたビルドは上から順番にシリアルに実行されていきますが、 group
の指定を追加することで好きなステップを並列に実行することができます。
pipeline: backend: group: build image: golang commands: - go build - go test frontend: group: build image: node commands: - npm install - npm run test - npm run build publish: image: plugins/docker repo: octocat/hello-world
group: build
を指定した箇所は並列で実行され、publish
ステップは group: build
が終わってから実行されます。
groupの指定をする場合は間に他のステップを入れてはいけません。
またこの並列実行は同一agent(ホスト)上での実行となるため、他のホストにまたがって実行されるわけではありません。リソースの競合には気をつけたほうがいいでしょう。
さて並列に実行すると言えば matrix ビルド機能がありますが、これと組み合わせて並列実行させることはできません。ざんねん。