Multi-stage CI/CD pipelines for .NET and MSSQL workloads, built with GitHub Actions and GitLab CI: automated builds, tests, encrypted secrets, and the same repeatable path to dev and production for every single commit.
push → build → test → inject secrets → deploy dev → approve → production
Deployments of .NET applications were manual and slow: builds happened on developer machines, configuration lived in people's heads, and a production release was something you scheduled and braced for.
I built pipelines that take every commit from push to production automatically: compiled, tested, containerized, and deployed to AWS with an identical process for dev and production.
Local builds produced inconsistent artifacts with untracked dependencies.
Fixed: all builds moved to pipeline runners using pinned toolchains and Docker images, making every artifact reproducible from a commit SHA.
Connection strings and API keys lived in plaintext config files and shell history.
Fixed: centralized encrypted secrets in GitHub and GitLab secret stores, scoped per environment and injected only at runtime.
Manual multi-step releases meant long change windows and regular human error.
Fixed: stage-gated pipelines where production reuses the exact artifact already validated in dev, so a release became an approval click.
Every
commit built and tested automatically
One
pipeline serving dev and production
Zero
secrets stored in repositories
Minutes
from commit to deploy