ローカルでCircleCiを実行する

あしたのチームでエンジニアをやっています。KECです。
弊社では、最近CIサービスをBitbucketPipelineからCircleCiに乗り換えました。

CircleCiを導入するにあたって設定ファイルをローカル上でテストしたいなーと思い
公式ドキュメントを探したところ、APIが用意されていました。 今回はその知見を共有したいと思います。

ちなみに公式ドキュメントはこちら

circleci.com

必要情報

  • ビルド対象のコミットハッシュ
  • ビルド対象のブランチ
  • プロジェクトソース(githubまたはbitbuket)
  • ユーザー名
  • プロジェクト名
  • API トークン(CIRCLE_TOKEN)

APIトークンの発行はこちらに記載があります。

やってみよう

下記を記載したシェルスクリプトを.circleciディレクトリに作成し、実行するだけ!とても簡単

#!/usr/bin/env bash
curl --user ${CIRCLE_TOKEN}: \
    --request POST \
    --form revision=<コミットハッシュ>\
    --form config=@config.yml \
    --form notify=false \
        https://circleci.com/api/v1.1/project/<プロジェクトソース>/<ユーザー名>/<プロジェクト名>/tree/<ブランチ>

ユーザー名とプロジェクト名が個人的にわかりづらかったので具体例をあげます。
例:https://github.com/sj26/rspec_junit_formatter

#!/usr/bin/env bash
curl --user ${CIRCLE_TOKEN}: \
    --request POST \
    --form revision=<コミットハッシュ>\
    --form config=@config.yml \
    --form notify=false \
        https://circleci.com/api/v1.1/project/github/sj26/rspec_junit_formatter/tree/master

注意事項

2019年7月12日時点ではCircleCiのversionが2.1でローカル実行をするとエラーになります。
下記の2.0に変換するコマンドを実施すると利用可能ですが、一手間かかるのが残念なところ...

circleci config process .circleci/config.yml > config_2.yml

宣伝

株式会社あしたのチームでは快適なCIライフを満喫したいエンジニアを募集しています!