LoginSignup
0
0

More than 1 year has passed since last update.

Github Actionsでgradleキャッシュできてなかったのを直したよ

Posted at

課題

Github Actionsでgradleの依存関係がキャッシュできてなかった。

結論

キャッシュの対象パスを修正
~/.gradle -> /root/.gradle

build.yml
    - name: restore gradle cache
      uses: actions/cache@v2
      with:
        path: |
          /root/.gradle/caches
          /root/.gradle/wrapper
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
        restore-keys: ${{ runner.os }}-gradle-

読まなくていい経緯

kotlin(Ktor)で開発していてある日気付いた。
みんな大好きactions/cache@v2のログを見ると

/usr/bin/docker exec  b7771335899ab39d1bc44c8b5221cfdebab45035280aaa687d8917fbf5077e12 sh -c "cat /etc/*release | grep ^ID"
Received 45 of 45 (100.0%), 0.0 MBs/sec
Cache Size: ~0 MB (45 B)
/usr/bin/tar -z -xf /__w/_temp/733b17c6-8e14-42c6-ab27-ecaeece6533a/cache.tgz -P -C /__w/myrepo/myrepo
Cache restored successfully
Cache restored from key: Linux-gradle-26c5ed26e1ebe58f9a52ea23e3929153c09a76cf006e85a78796812b1df7b81a

あれ、これキャッシュ効いてなくない・・・?45バイトって何・・・
今まで確認してなかったので「ある日突然できなくなった」わけではなく最初からできてなかったのかもしれない。

こんな時はtmateでSSHデバッグだー
リナックススゴクワカラナイのでいちいちコマンドを調べながら実行。

root@05b6a8359c14:/__w/myrepo/myrepo# ls ~/.gradle
ls: cannot access '/github/home/.gradle': No such file or directory

キャッシュ対象のディレクトリがないやんけ。じゃあどこにあるの?

root@05b6a8359c14:/__w/myrepo/myrepo# find / -name ".gradle" -type d
find: '/proc/1163/task/1163/net': Invalid argument
find: '/proc/1163/net': Invalid argument
/root/.gradle
/__w/myrepo/myrepo/.gradle

そこかー
下二つそれぞれのディレクトリの中を見ると/root/.gradleのほうにcachesを発見。

ということで「結論」に書いた内容で修正して2回実行。(1回目でキャッシュ保存させるため)

/usr/bin/docker exec  6d0feb87a8d2361be8be2dd84a988a43b1827c893690f818edc81f36a32135ff sh -c "cat /etc/*release | grep ^ID"
Received 176160768 of 473646535 (37.2%), 168.0 MBs/sec
Received 402653184 of 473646535 (85.0%), 191.9 MBs/sec
Received 473646535 of 473646535 (100.0%), 167.1 MBs/sec
Cache Size: ~452 MB (473646535 B)
/usr/bin/tar -z -xf /__w/_temp/a628ba9d-5267-4c2d-a4ea-4e7fe1446d84/cache.tgz -P -C /__w/myrepo/myrepo
Cache restored successfully
Cache restored from key: Linux-gradle-41ed537c6a2f3fc1176d54174a68732b9d666649a40e13c2b1c25ee53a778e2c

キャッシュからリストアできたよー

公式には~/.gradleって書いてあるのになんでだ。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0