Back to tags
#ci-cd
yaml, runners, and the green checkmark that took six hours to earn.
3 blog posts.
Posts about the pipeline as a thing that is both a bottleneck and an attack surface. The comparison post came from running GitHub Actions and GitLab CI side by side across fifty microservices, with the decision matrix that came out of it. Part 2 of the Lazy Security series is the security half: SHA pinning against tag rewrites, dependency cooldowns, and the trigger never to touch. The build cache post is the speed half, and the reason a build that caches on your laptop rebuilds everything on a fresh runner.
Blog posts
A CI runner starts with an empty layer store, so every build is a first build. Cache mounts, instruction order, and an exported cache fix it in about ten…
Hardening GitHub Actions for small teams: SHA pinning against tag rewrites, OIDC over long-lived secrets, dependency cooldowns, and the trigger to never…
GitHub Actions vs GitLab CI after two years running both across 50 microservices: build times, free-tier minutes, Docker support, debugging, and which to…