mmag

ハマったことメモなど

GitHub ActionsのhashFilesがちゃんとエラーで落ちるようになった

BOLGの言語バージョン上げるかと思ってプルリクつくったらCI (GitHub Actions) が落ちた。テストで落ちたとかじゃなくて、その前の actions/cache@v2 つかった依存性周りのキャッシュのとこで何か言われておる。

Error: /home/runner/work/blog/blog/./.github/actions/setup-api/action.yml (Line: 23, Col: 14):
Error: The template is not valid. /home/runner/work/blog/blog/./.github/actions/setup-api/action.yml (Line: 23, Col: 14): hashFiles('/home/runner/work/blog/blog/./.github/actions/setup-api/api/mix.lock') failed. Fail to hash files under directory '/home/runner/work/blog/blog'

ここは何も触ってないのでなんでだろうと思ったら、どうやらhashFilesに変更が入ってエラーが起きたときにちゃんとActionsのジョブが落ちるようになったとのこと。つまりこれまでずっとミスってたってこと。

https://github.com/actions/runner/issues/449#issuecomment-1058348592

After discussing this internally, we think this is related to - actions/runner#1678. Essentially hashFiles was previously failing silently but with the new runner version it will raise an Error instead.

こんな感じに変えたら通りました。

- key: ${{ runner.os }}-bolg-api-${{ inputs.otp-version }}-${{ inputs.elixir-version }}-${{ hashFiles(format('{0}{1}', github.action_path, '/api/mix.lock')) }}
+ key: ${{ runner.os }}-bolg-api-${{ inputs.otp-version }}-${{ inputs.elixir-version }}-${{ hashFiles('/api/mix.lock') }}