SEANK.H.LIAO

tools on github actions

tools on github actions

Github Actions, your favorite arbitrary code execution platform with a long startup time.

Anyway, within you CI process, usually you will want some non default tools. If you were self hosting the runners (executors), that isn't a problem, just install them on the runner. If you're using the cloud ones though...

The "recommended" way is to have an action install/configure the tool every time. This results in something like:

1jobs:
2  build:
3    steps:
4      - use: toolx/setup
5      - use: tooly/setup
6      - use: toolz/setup
7      - run: toolx ...
8      - run: tooly ...
9      - run: toolz ...

Which is very much meh. You install the tool every time, slowing down the entire process for what? And if you have a lot of repos keeping everything in sync is not fun.

container

What you could instead is bundle all your tools into a container image...

1jobs:
2  build:
3    container:
4      image: ghcr.io/my/builtools
5    steps:
6      - run: toolx ...
7      - run: tooly ...
8      - run: toolz ...

This does mean everything shares the same tools / versions, but that's also an advantage since updating needs only be done in one place. but you still use a different container for a step if it requires it.