Two green CI runs told me the release worked. Both were no-ops.
A green check means one thing: the job exited 0. That is all it means. It does not tell you the step you cared about actually did the work you think it did. I learned this the slow way, twice in a row, on the same release pipeline.
The setup
I had wired up automated releases with python-semantic-release. The idea is clean: you write conventional commits, the tool reads them, decides the next version, tags it, and pushes. Because the release job has to push a version bump and a changelog back to a protected branch, I gave it a dedicated RELEASE_TOKEN with the rights to do that.
The wiring looked healthy. Push, pipeline runs, green check, move on.






