CircleCIをローカルマシンで実行する

CircleCI CLI (circleciコマンド)と Docker を使います。CircleCI CLI のインストールがまだの場合以下で入れます。

curl -fLSs https://circle.ci/cli | bash

コマンドはlocal executor --config <設定へのパス>ですが、注意する点として、2020-01現在では CircleCI2.1 の書き方には対応していません。よって使う前に CircleCI2.0 の書き方に変換する必要があります。

後はコマンドを実行するだけです。

circleci local executor \
  --config .circleci/config.yml
  

デフォルトではこれはjobs.buildを実行します。もし別のジョブを実行したい場合は--jobフラグがあります。以下のようにするとsandboxジョブを走らせることができます。

circleci local executor \
  --config .circleci/config.yml \
  --job sandbox
  

他に環境変数を渡せる--env VAR=VALやブランチをデフォルトのplaygroundから変更できる--branchなどのオプションがあります。

ただしローカル実行ではワークフローは見ていないようです。つまり以下のような設定の時に、

workflows:
  workflow:
    jobs:
      - sandbox:
          filters:
            branches:
              only:
                - playground
                

--branch developオプションを付けてもワークフローのフィルターなどがちゃんと動作してるかなどは確認できません。