10:00概要GitLabでCI/CDを行っているのですが、実行には結構時間がかかります。実際に、私の環境ではRailsのプロジェクトでテストを実行するまでに5分以上かかります。今回は、この問題をキャッシュを使うことで実行時間を1分半くらいまで減らすことができたので、その方法について紹介します。Runnerではキャッシュを使うことで、例えばライブラリのインストール時間を短縮することができます。ライブラリをインターネットからダウンロードする場合は帯域の削減にもつながります。CI/CDでは、次のようにすることで、キャッシュができます。node_modules/この例では、Railsのプロジェクトでキャッシュを使用しています。installでRubyに関するライブラリをダウンロードするのですが、この時--pathオプションでvendor/bundle以下にダウンロードします。installでJavaScriptに関するパッケージのインストールをしています。yarnの場合、ダウンロードしたものはnode_modules以下にダウンロードされます。このようにダウンロードしたものをcache以下の設定でキャッシュします。trueとしてGitで管理していないファイルをキャッシュするようにしています。以下にキャッシュするディレクトリを指定します。今回はRubyのライブラリをインストールしたvendor/bundleとyarnのパッケージをインストールしたnode_modulesをキャッシュしています。"$CI_JOB_NAME"があります。これはキャッシュに使用するキーなのですが、このキーを元に、すでにキャッシュとして保存されている場合はキャッシュをダウンロードします。今回は、$CI_JOB_NAMEとしてジョブの名前を指定しています。そのため、同じCIのジョブならばキャッシュが使われます。今回はnode_modulesとvendor/bundle以下をキャッシュしました。この部分を書き換えればキャッシュするディレクトリを変更できます。他のプロジェクトで使う場合は、この辺りを変更して使いましょう。さいごに今回は、Railsのプロジェクトを例にキャッシュを使いました。設定を変えたら、他のプロジェクトでも使えます。