Why I've standardised on 'run' scripts

In some of my first emails to this list, I wrote about just and run files.

Both allow you to write project-specific aliases and commands. For example, instead of running docker compose exec php phpunit, you run just test or run test.

While just uses a simple Makefile-like syntax, it requires its own program, so it needs to be installed.

While I have it installed locally, I've had instances where CI pipelines have failed because they can't download and install just and not because of an error in my code.

Here's the thing

A run script is a file of Bash functions.

Because it's written in Bash, it runs anywhere without installing additional dependencies.

If a CI pipeline fails, which is less often, it's due to a failure within my code and not because of a download error.