もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

circleciでshallow clone して実行時間短縮

はじめに

こんばんは。

相棒の旅立ちからあまり立ち直っていない僕です。

今回は前回の記事にもあった circle ciの実行時間短縮の方法である shallow clone を試してみました。

本題

コードはすごく簡単で、 circle ciの checkout を使わず commandで git clone を実行します

- run:
  name: Setup Repository
  command: |
    git clone --depth 1 --single-branch --branch ${CIRCLE_BRANCH} "https://${GITHUB_TOKEN}:x-oauth-basic@github.com/owner/repository.git" ${HOME}/repository

もしくは、 こちらの orbsを使う感じかなと思います。

こちらも結局やっているのは上記のコマンドです。

通常の checkout

f:id:kojirooooocks:20210202021145p:plain

shallow clone

f:id:kojirooooocks:20210202021155p:plain

かなりの速度アップになりました!

ちなみに、github actionではどのくらい速度アップするのかな?と思っていたのですが、 github actionはデフォルトで shallow clone でした。

github.com

終わりに

巨大な歴史あるレポジトリだと、かなり効果があるのがわかりました。

あー手が痛い。。。

現場からは以上です。