azihsoyn's blog

技術のこととか釣りの事とか(書けたらいいなぁ)

CircleCI2.0上でgo1.10のビルドキャッシュを使う

風邪で会社休んでるのに何をしてるんだという気がしつつ。 タイトルの通りのやつをmediumに書いてみました。適当な英語で。

Making your build faster with go 1.10 on CircleCI 2.0

英語で書いたらいっぱい見られるかなと思ったらそんなことはなかったです。

ポイントは

  • GOCACHEDIR を指定してあげる
  • GOCACHEDIR をキャッシュ対象にする
  • キャッシュに使うkeyに CIRCLE_PREVIOUS_BUILD_NUMCIRCLE_BUILD_NUMを使う

ことです。(CircleCIのキャッシュは更新ができないため)

mediumには書いてませんが(英語が限界だったため)、新しくfeatureブランチを作ったときにもキャッシュを使うためにcommandで環境変数にkeyを設定する方法も考えました。

多分こんな感じ

      - run:
          name: set build cache key
          command: |
                if [ "${CIRCLE_BRANCH}" == "develop" ]; then
                    echo "export BUILD_CACHE_KEY=build-cache-develop" >> $BASH_ENV
                else
                    echo "export BUILD_CACHE_KEY=build-cache-$(CIRCLE_BRANCH)-$(CIRCLE_BUILD_NUM)" >> $BASH_ENV
                fi

が、十分に早くなったのでそこまで頑張らなくて良いかなーと思い見送りました。

英語でなんか書くのもこれに懲りずやっていきたいと思います。(なんとなくmediumで書くよりスライドの方が文章にしなくてよい分英語のアウトプットとしては簡単なんじゃないかと思いました。)