Live data from Hacker News

I'll think twice before using GitHub Actions again

ninkovic.dev

11–20 of 284 posts

Re: I'll think twice before using GitHub Actions again

#12
post #3

I call writing GitHub Actions "Search and Deploy", constantly pushing to a branch to get an action to run is a terrible pattern... You'd think, especially with the deep VS Code integration, they'd have at least a basic sanity-check locally, even if not running the full pipeline.

Not just me then? I was trying to fix a GitHub action just today but I have no clue how I'm supposed to tear it, so I just keep making tiny changes and pushing.... Not a good system but I'm still within the free tier so I'm willing to put up with it I guess.

Re: I'll think twice before using GitHub Actions again

#13
post #4

GitHub (Actions) is simply not built to support monorepos. Square peg in a round hole and all that. We've opted for using `meta` to simulate monorepos, while being able to use GitHub Actions without too much downsides.

hey could you please share the`meta` tool you mentioned , sounds interesting ! couldn't find it on internet [skill issue]

Guessing it's https://github.com/mateodelnorte/meta googlefu "meta github repo"

Re: I'll think twice before using GitHub Actions again

#14
post #6

In the end, this is the age old "I built by thing on top of a 3rd party platform, it doesn't quite match my use case (anymore) and now I'm stuck". Would GitLab have been better? Maybe. But chances are that there is another edge case that is not handled well there. You're in a PaaS world, don't expect the platform to adjust to your workflow; adjust your workflow to the platform. You could of course choose to "step dow…

> Would GitLab have been better? My impression of gitlab CI is that it's also not built for monorepos. (I'm a casual gitlab CI user).

I'm not sure if there's a monorepo vs polyrepo difference; just that anything complex is pretty painful in gitlab. YAML "programming" just doesn't scale.

Re: I'll think twice before using GitHub Actions again

#15
post #5

> no way of running actions locally My policy is to never let pipeline DSLs contain any actual logic outside orchestration for the task, relying solely on one-liner build or test commands. If the task is more complicated than a one-liner, make a script for it in the repo to make it a one-liner. Doesn't matter if it's GitHub Actions, Jenkins, Azure DevOps (which has super cursed yaml), etc. This in turn means that you…

This. I'd go more relaxed on the one-liner requirement, a few lines are fine, but the approach is correct IMHO.

Re: I'll think twice before using GitHub Actions again

#16
post #7

> GitHub doesn't care GitHub cares. GitHub cares about active users on their platform. Whether it's managing PRs, doing code reviews, or checking the logs of another failed action.

GitHub often actively doesn't act in situations where acting would be prudent, which portrays from an outside perspective a disinterest in those who give their time to document shortcomings. Would you care to guess when the last time that the GitHub API was updated? It's probably much longer than you'd think (2+ years at this point).

Re: I'll think twice before using GitHub Actions again

#19
Oh boy, there's a special kind of hell I enter into everytime I set up new github actions. I wrote a blog post a few months ago about my pain[0] but one of the main things I've found over the years is you can massively reduce how horrible writing github actions is by avoiding prebuilt actions, and just using it as a handy shell runner.

If you write behaviour in python/ruby/bash/hell-rust-if-you-really-want and leave your github action at `run: python some/script.py` then you'll have something that's much easy to test locally, and save yourself a lot of pain, even if you wind up with slightly more boilerplate.

[0] https://benrutter.github.io/posts/github-actions/

Re: I'll think twice before using GitHub Actions again

#20
post #13

Earlier quoted context omitted.

hey could you please share the`meta` tool you mentioned , sounds interesting ! couldn't find it on internet [skill issue]

Guessing it's https://github.com/mateodelnorte/meta googlefu "meta github repo"

hey thanks!

definitely interesting!

I do wonder if this really solves the author problem because by the looks of it , you just have to run meta command and it would run over each of the sub directory. While at the same time , I think I like it because this is what I think people refer to as "modular monolith"

Combining this with nats https://nats.io/ (hey if you don't want it to be over the network , you could use nats with the memory model of your application itself to reduce any overhead) and essentially just get yourself a really modular monolith in which you can then seperate things selectively (ahem , microservices) afterwards rather easily.

Post reply on HN