update.最近でCircleCIおじさんになっているりんご(@mstssk)です。実行に何分もかかってしまっています。以前は2〜3分だったのが、先日は8分もかかってました。思い切って.gitディレクトリをキャッシュしてしまうようにして、10秒前後で済むようにしてみました。追記2019/02/19本記事の内容を試す前に、あなたがCircleCIで使っているDockerイメージにgitとsshがインストールされているか確認しましょう。gitとsshが無い場合、CircleCIがFallbackしてチェックアウトを行ってくれるのですが、これはイメージ上のgitとsshを使うより遅いようです。codeステップのログを見ればわかります。参考記事やった内容は、下記の公式ドキュメントとクラウドワークスさんのエンジニアブログ記事を参考にしたものです。cloneすることでチェックアウトを高速化する手段が書かれていますが、私は.gitをキャッシュする方法を選択しました。cloneするには別途GitHubのアクセストークンを用意する必要があり管理上の手間が増えてCIの管理が属人化しすぎるのを嫌ったためです。ディレクトリをキャッシュする実際のCircleCIの設定ファイルは以下のように記述しています。複数指定しているのは、合致するキャッシュがなければ別コミット・別ブランチのCIのキャッシュを拾うためです。任意にキャッシュをクリアするため。いう環境変数に適当な文字列を入れておいて、キャッシュをクリアしたいときに値を変えることでキャッシュのキーを変えてしまっています。レストア時にワーキングディレクトリがcleanじゃないことがあったためです。code食わせてごまかしています。使うと、ちゃんとレストアした.gitを使ってくれるので、差分だけの取得になり高速になります。このやり方の注意点として、変なブランチ名の付け方をしてしまったときに、キャッシュ済みのリポジトリ情報と新しいブランチ名が衝突してうまくチェックアウトできない場合があります。チェックアウトに失敗します。変更すれば済むので、これについては特別な対応はしていません。upLoginユーザーは見つかりませんでした。