概要

CircleCI2.0の機能と .circleci/config.yml の書き方についてメモ

構造

ざっくり書くとこんな感じ

  • jobs
    • < job name >
      • environment
      • machine
      • branches
      • steps
  • workflows
    • < work_flow_name >
      • triggers
      • jobs

workflow

job をいつどの順番で実行するかを定義できます

triggers

workflow_name に定義した workflowcron で実行する時間の指定ができます
また、 branches を指定して、実行するブランチ絞ったり、除外したりすることもできます

公式ドキュメント

jobs

workflow_name に定義した job の実行する順番の指定ができます
また、指定した job に対し、以下の属性を持たせることができます

属性 説明
type approval を指定して、WEB上で手動でボタンを押さない限り job の実行が始まらないようにする
require 指定した job が成功するまで job の実行が始まらないようにする
filters branches を指定して、実行するブランチ絞ったり、除外したりする
      - hold:
          type: approval
          requires:
            - test1
            - test2
      - deploy:
          requires:
            - hold
            - 

jobs

environment

環境変数の定義ができます
セキュリティ上との理由でプロジェクトメンバーに見られたくない場合は Environment Variables に設定することもできます

machine

CIを動かすマシンを指定できます

branches

onlyignore を指定して、CIのビルドパイプラインを動かすブランチを絞ったり除外したりできます

詳しくは 公式ドキュメント をみてみてください

steps

job で実行する処理を順に定義できます
steps では、 run, checkout, restore_cache, deploy, store_artifacts, store_test_results, persist_to_workspace 等が定義できます

詳しくは 公式ドキュメント をみてみてください

以下、よく使う steps について紹介します

restore_cache

以前 key を指定して保存したデータを paths で指定したディレクトリに復元することができます

      - restore_cache:
          name: restore docker image cache
          key: docker-{{ checksum "docker-compose.yml" }}
          paths: ~/caches

詳しくは 公式ドキュメント をみてみてください

run

command に指定したコマンドを実行できます
テストデータの作成やテストの実行はここで指定します

save_cache

paths で指定したディレクトリ or ファイルを key を指定して保存することができます

例えば、~/caches 以下のデータを、docker-compose.ymlのchecksumの値をキーにして docker-{{ checksum "docker-compose.yml" }}

      - save_cache:
          - name:  save docker image cache
          - key: docker-{{ checksum "docker-compose.yml" }}
          - paths: ~/caches

のように保存できます
また、 他のファイルの checksum を組み合わせて、

      - save_cache:
          - name:  save docker image cache
          - key: docker-{{ checksum "docker-compose.yml" }}-{{ checksum "db/schema.rb" }}
          - paths: ~/caches

のようにすることもできます

key には checksum 以外にも、 .Branch, .BuildNum, .Revision, .CheckoutKey, .Environment.variableName, epoch, arch
などが指定できます

詳しくは 公式ドキュメント をみてみてください

store_artifacts

CIでの処理実行中にできた成果物を artifacts に保存して、終了後にCircleCIのWEB上からダウンロードすることができます

      - store_artifacts:
          path: ~/caches/dump.sql
          destination: db/dump.sql

公式ドキュメント

Example

公式ドキュメントの例を載せておきます
https://circleci.com/docs/2.0/configuration-reference/#example-7

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.