"GitHub CI is easy", he said. "It's just bash
", he said.
"GitHub CI is easy", he said. "It's just bash
", he said.
Until he actually had to use it.
Took 2 hours of reading through examples just to deploy the site.
Turns out, it is hard to do even just the bash
stuff when you can't see the container.
Time for the yearly barrage of "Setup CI"..."Fix CI" commits.
That is my experience with basically every CI service out there.
Normally, you don't want to commit code unless it's been at least minimally tested, and preferably more than that.
All the CI's, however, force a workflow where you can only test it by committing the code and seeing if it works. I'm not sure how to fix that, but I see the problem.
If you can test it on a feature branch then at least you can squash or tidy the commits after you've got them working. If you can only test by committing to main though, curse whoever designed that.
Here's my hot tip! (ok maybe luke warm)
Write as much of your CICD in a scripting language like bash/python/whatever. You'll be able to test it locally and then the testing phase of your CICD will just be setting up the environment so it has the right git branches coined, permissions, etc.
You won't need to do 30 commits now, only like 7! And you'll cry for only like 20 minutes instead of a whole afternoon!
Line the other commenter said, there's nothing wrong with committing temp/untested code to a feature branch as long as you clean it up before the PR.
We test our code locally, but we cannot test the workflow. By definition, testing the workflow has to be done on a CI-like system.
There is nektos/act for running github actions locally, it works for simple cases. There still are many differences between act and github actions.
It might be possible for a CI to define workflow steps using Containerfile/Dockerfile. Such workflows would be reproducible locally.