GitHub encourages this by using an arcane pipeline configuration format that could have been a shell script and has no way to run it outside GitHub.