@kyanny's blog

私は天才ではありません。ただ、人より長く一つの事と付き合っていただけです - アインシュタイン

CircleCI: matrix build / matrix jobs

最小限のサンプルプロジェクト

github.com

ポイント

  • version: 2.1
  • jobs: の直下はジョブ名(任意の名前で良い)
  • ジョブ名の直下に parameters: で可変値を使いたい key を定義
    • ↑の例だと ruby-version という key が可変部分
  • docker: で image 指定する部分で << parameters.ruby-version >> とテンプレートを使う
  • workflows: の直下はワークフロー名(これも任意の名前で良い)
  • ワークフロー名の直下の jobs: の直下にジョブ名を配列で並べて書く
  • ジョブ名直下の matrix: という定義の下で parameters を配列で定義する
    • ここで書いた要素ごとにテンプレート文字列が置換されて job が走る

このブログ記事がわかりやすかった。設定例が具体的かつ完全だったのが良かった。

ishkawa.org

公式ブログの記述は長いわりに設定例の見通しが悪く、よくわからなかった。 orb を使っているからか、 parameters: の定義が書いてなかったりする部分とか。公式ドキュメントの類はサンプルにいろいろ盛り込んで手抜きせずに、最小限の設定から組み合わせて拡張していけるような書き方をしていて欲しいものだ。

circleci.com