I've been contemplating the idea of integrating Github's Cache action (https://github.com/actions/cache) in order to somewhat lower my CI workflow build times.
Which directories are supposed to be cachable?
It depends on what you use. If you install Nim with choosenim you will need to cache ~/.choosenim directory. If you use any dependencies installed with nimble, you will need to cache ~/.nimble directory.
BTW, GitHub Nim action: https://github.com/jiro4989/setup-nim-action has support for caching plus some examples how to use it. That's probably the easiest way to set Nim with GitHub Actions.