I can’t overstate how much I hate GitHub Actions. I don’t even remember hating any other piece of technology I used. Sure, I still make fun of PHP that I remember from times of PHP41, but even then I didn’t hate it. Merely I found it subpar technology to other emerging at the time (like Ruby on Rails or Django). And yet I hate GitHub Actions.
With Passion2.

Road to Hell
Day before writing these words I was implementing build.rs for my tmplr project. To save you a click - it is a file/project scaffold tool with human readable (and craftable) template files. I (personally) use it very often, given how easy it is to craft new templates, by hand or with aid of the tool, so check it out if you need a similar tool.

  • frongt@lemmy.zip
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 hour ago

    the whole loop still took around 2-3 minutes to execute.

    FOR. A. SINGLE. CHANGE.

    Yes. For a single change. Like having an editor with 2 minute save lag,

    Damn you’re running a whole production pipeline and it only takes two minutes? That’s pretty good. I’ve worked with projects that take tens of minutes, if not hours, just to compile.

    Now if I was running some dinky little solo dev project, I’d probably just use some system-local CI thing for rapid iteration, if my changes needed to go through CI at all. Maybe Jenkins if I was feeling fancy. But a big project with a bunch of users on a remote platform? Getting a result in just 2-3 minutes is awesome.

  • franzbroetchen@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    30 minutes ago

    Man I hate PHP with a burning passion - much, much more than GitHub actions. And yes, they already suck big time. But man, PHP made me question my whole career just by its utter and pure stupidity and atrocious design choices. Just had to vent for a moment - IMHO nothing comes even close to that programming language in terms of how pathetic it is.

  • 9point6@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    2 hours ago

    FOR. A. SINGLE. CHANGE. Yes. For a single change. Like having an editor with 2 minute save lag, pushing commit using program running on cassette tapes

    Am I reading this bit correctly? Are they complaining about testing a CI change and it only taking a couple of minutes to verify?

    And this person’s using a compiled language?

  • tofubl@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 hours ago

    Github Actions really are horrible to work with. If I could spin up a container and test the commands on the fly that would make things so much easier. But having to do the commit push refresh webpage insanity every time… It is really cool when the pipeline works, but getting there is very painful.

  • yaroto98@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    31 minutes 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 themselves 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.
    • Inconsistent 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.
    • garbage documentation

    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.

      • yaroto98@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        23 minutes 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.