Building a social media auto-poster
2025-10-22 21:22:57 +01:00 by Mark Smith
Lots of progress on the Github Actions RSS to social media auto-poster I’ve been working on. I started out building the workflow primitives, just simple reusable workflows that enable you to post a message to social medias. The first two I’ve implemented are Mastodon and Twitter (X). Got those working and then went up a level and implemented a reusable workflow that posts to all socials, which triggers the first two.
At this point things were quite complicated and debugging became tricky. When you are running a workflow that calls another workflow things can get quite confusing. And initially I wasn’t sure I could have these all in the same repo, so I had them in separate repos, which added to the complexity. So I spent quite a bit of time implementing a repeatable way to easily and safely log workflow inputs and secrets (i.e. masked). It was quite cool getting to this point.
With that working, I embarked on the most complex of all, a workflow that reads an RSS feed, pulls out the newest posts, and for each one launches an instance of the post-to-all-socials
workflow. The two tricky things with this workflow are how to launch many parallel jobs, and how to store state between runs. The level of complexity at this stage was considerable.
Gemini was of course being very helpful then being a complete liability, leading us both down several quite dangerous dead ends, forgetting why it had decided to go a particular route and then confidently announcing that the best final solution that would fix everything was to migrate to a new architecture which was the exact architecture that it had initially said was not up to the task. This happened at least 3 or 4 times. Thankfully I had been making good use of git feature branches, so never ended up in a situation that wasn’t recoverable, though it was certainly a slog.
I eventually figured out the right architecture and got it working, which is awesome, except that the workflows were spread across several repos, so I consolidated them all into one repo. That’s where I’m at now, and I’ve had to put everything on hold because I’m about to run out of build minutes. Testing this whole thing has been quite difficult, especially because there were loads of minutes wasted with many workflows that simply would not cancel. Something that should have taken a few seconds would eat up 5 minutes. This happened a lot.
So anyway, I’m waiting for the build minutes to reset which should happen at the end of the month, and I’m also waiting on Github support because for some reason the main workflow has stopped being recognised properly and won't start. I’ve debugged it using all the tools I know, including a special Github Actions linter called actionlint, and I can’t figure it out. You get all the way to the end and right before the last hurdle and the whole thing stops working. I’m getting a strange sense of deja vue, it’s almost like something like this has happened before.
Anyway, hoping to have something working soon :) #