What would you use if you had a choice?
yaroto98@lemmy.world 3 days ago
Huh, I was expecting more. There’s so much to hate with github actions!
- Sometimes you can pass a list, or boolean, but for composite actions you can only pass strings.
- Open bugs that github actions just doesn’t care to fix (I’ve run across about 3). Most recently, concurrency flag cancel_in_progress doesn’t work, and they aren’t fixing it.
- variables often not accessable until next step.
- API is slow to update. Running jobs querying themselfs won’t see themselves as running 50% of the time
- Inability to easily pass vars from one job to another. (output in step, output from job, needs, call) it’s 4 lines of code to get a single var accessable in another job.
- UI doesn’t show startup errors. Depending on the error if you make a dumb syntax error in the workflow file, the UI will just say failed to startup. Won’t tell you what happened, won’t even link it to your PR which kicked it off, you have to go hunting for it.
- Workflow Dispatch is a joke. Can’t run it in a branch, no dynamic inputs, no banners.
- Can’t run schedules in branches.
- Inconsistant Event Data labels and locations across triggers. Want to get the head sha? It’s in a different place for each trigger, same for so many things.
- Merge Queues have the worst Event Data. They run off a autogenerated branch, and so they fill everything in with actor=mergequeuebot and garbage that is unhelpful. Good luck trying to get the head sha and look up the real info like say the branch name you’re merging in. You have to parse it out from a head_ref’s description or some junk.
- No dynamic run names. Well, you can, but you have to call the api and update it. It’s a hassle. Why not just let me toss in an @actor, or @branch in the run name? That way when a dev is looking for their instance of “Build Job” from a massive list, they can actually find theirs.
I could go on. I do CI/CD for work and gha is the tool they are having us use. I have no say in the matter.
moonpiedumplings@programming.dev 3 days ago
yaroto98@lemmy.world 3 days ago
Not saying it’s perfect, but every job I’ve been at they’re migrating away from Jenkins. And they never have a reason to do so other than shiny new toy. Jenkins has it’s own problems, but I personally think it’s litterally decades ahead of github actions.
I do like runners better than the default jenkins run baremetal on the server, however the runners are too blackbox. I wish there was a debug toggle on runners. Pause at step, then provide a console into the runner. Some runs litterally take hours, so adding some debug output, and rerunning makes troubleshooting tedious.
dublet@lemmy.world 3 days ago
And they never have a reason to do so other than shiny new toy.
Security. Jenkins has issues with every other plugin being a backdoor or version having some vulnerability.
yaroto98@lemmy.world 3 days ago
And the Actions in the marketplace aren’t?
My employers have only allowed a very small subset of each. It’s super frustrating having to reinvent the wheel constantly.
namingthingsiseasy@programming.dev 3 days ago
I’ve found the edit/test/debug loop in Jenkins to be much faster than Github Actions. It was quite a refreshing change when I made that transition.
yaroto98@lemmy.world 3 days ago
Yep, I think the only thing github actions has over jenkins is built in versioning. I wish in jenkins I could edit a pipeline and easily roll it back. Or even better have tags so if I break something the team can just use the previous tag while I figure it out.
moonpiedumplings@programming.dev 3 days ago
have you looked at solutions which emulate github actions locally?
github.com/nektos/act this is one of them but I think I’ve seen one more.
Github actions also has self hosted runners: docs.github.com/en/actions/…/self-hosted-runners
dublet@lemmy.world 3 days ago
Never found
actuseful. Where I work, we have our own self hosted instance, including self hosted runners and it doesn’t really improve the situation WRT debugging an Action.
jeena@piefed.jeena.net 3 days ago
I like zuul quite a lot, it’s a bit complicated to set up first but once it’s runnint’s really cool, especially the gating mechanisms can’t be found anywhere else and the dependencies between jobs are very intuitive too.
jjjalljs@ttrpg.network 3 days ago
There’s not to my knowledge a good way to run/test GitHub actions locally. So if I want to verify my change uploads the coverage report after the end of the pipeline, I have to run the whole thing. And then I find an error because on the GitHub runner blah blah is different
yaroto98@lemmy.world 3 days ago
You can install the github actions runner locally and use it, however all that does is eat your cpu cycles and prevent them from charging you. It doesn’t help you debug that blackbox at all.
namingthingsiseasy@programming.dev 3 days ago
The best way I found to do this is by commenting out the portions of the build that take the longest.
Which is stupid, but that’s what you get with Microsoft products.
(I get that there may be ways to test this locally, but I found this method to be the easiest.)