DevOps is bad because for some reason we’ve decided to invent new programming languages that you can’t debug locally and so you have to keep pushing commits to the pipeline server. It’s bullshit.
“Why do you write all your pipelines as shell scripts and then wrap them in yaml at the very end”?
Because then I can run them locally quickly and test individual components of them instead of “edit, commit, push, wait 10 minutes, read error message, repeat”.
FWIW, gitlab-runner exec and earthly exist for running tests locally, with others things like nektos/act for GHA as a 3rd party solution. I’ll never get used to yaml, though, all my pipelines are mostly shell scripts. Using a markup language as a programming language was definitely one of the decisions of all time.
Gitlab-runner exec and act are great tools, but this goes out of the window as soon as the cloud hosting service is a little less intelligent (looking at you, azure DevOps, who removed the hack that let pipeline run locally in 2019)
That’s why earthly exists. Now you can run your pipeline on a container with a “familiar syntax” inside another container with a “familiar syntax” inside of a “reproducible, easy-to-use” VM provisioned on top of probably KVM, as Torvalds intended
DevOps is bad because for some reason we’ve decided to invent new programming languages that you can’t debug locally and so you have to keep pushing commits to the pipeline server. It’s bullshit.
“Why do you write all your pipelines as shell scripts and then wrap them in yaml at the very end”?
Because then I can run them locally quickly and test individual components of them instead of “edit, commit, push, wait 10 minutes, read error message, repeat”.
FWIW,
gitlab-runner exec
and earthly exist for running tests locally, with others things like nektos/act for GHA as a 3rd party solution. I’ll never get used to yaml, though, all my pipelines are mostly shell scripts. Using a markup language as a programming language was definitely one of the decisions of all time.Gitlab-runner exec
andact
are great tools, but this goes out of the window as soon as the cloud hosting service is a little less intelligent (looking at you, azure DevOps, who removed the hack that let pipeline run locally in 2019)That’s why earthly exists. Now you can run your pipeline on a container with a “familiar syntax” inside another container with a “familiar syntax” inside of a “reproducible, easy-to-use” VM provisioned on top of probably KVM, as Torvalds intended