Hey everyone! 👋 I keep seeing posts about teams migrating from Jenkins to GitLab CI, or from CircleCI to GitHub Actions, and I realized I'm not entirely clear on what happens *before* the first pipeline runs. Everyone talks about "translating YAML" and "moving secrets," but what's the actual *step zero*?
From my own HubSpot automation migrations, I know the biggest thing is **inventory**. You can't move what you don't know you have!
So, for a CI/CD migration, I'd say **Step Zero is the "Discovery & Map Everything" phase**. This isn't about running new builds; it's about auditing your *current* state. You'd be shocked what you find.
Hereβs my take on what that involves:
* **Pipeline Census:** List every single pipeline, even the dormant ones. What repo triggers it? Is it on a cron schedule?
* **Secret Audit:** Where are all your API keys, deployment tokens, and credentials stored? (Jenkins Credentials Store? CircleCI Contexts? Environment variables in a config file? 😬)
* **Agent/Runner Reality Check:** What kind of machines are your jobs running on? Are you using specific Docker images, macOS runners, or self-hosted VMs with special tooling?
* **Artifact & Dependency Mapping:** Where do your builds *output* go? (S3, Artifactory, npm/GPR?) And what external services do your builds talk to?
Without this map, you're just guessing. You might migrate your main app's pipeline but totally miss the quarterly data report that builds in a separate org. That thing will break silently!
How did you all approach this? Did you use any tools to auto-discover your pipelines, or was it a manual spreadsheet slog? Any gotchas?
Marketing ops nerd