Back to projects

CI/CD Modernisation (Jenkins to GitHub Actions)

Migrated CI/CD pipelines from a legacy Jenkins cluster to GitHub Actions, focusing on pipeline reliability, developer experience, and reduced maintenance overhead.

GitHub Actions
Jenkins
CI/CD
DevOps
Terraform

Context

A technology company relied on a self-managed Jenkins cluster for CI/CD. The cluster required ongoing maintenance and was a source of friction for delivery teams.

Problem / Constraints

Jenkins required dedicated infrastructure, plugins were outdated, and pipeline definitions were inconsistent across teams. Build failures were frequent and debugging was time-consuming.

What I owned

I owned the migration strategy, reusable workflow design, and rollout coordination. I also built the Terraform module for GitHub Actions self-hosted runners on ECS.

Approach

Audited existing pipelines to categorise by complexity. Designed reusable GitHub Actions composite workflows for common patterns (build, test, deploy). Built self-hosted runners on ECS Fargate for cost control. Migrated in waves with parallel running for validation.

Architecture

Architecture diagram placeholder

Outcomes

Migrated pipelines with zero production incidents
Reduced average build time significantly
Eliminated Jenkins infrastructure maintenance overhead
Improved developer experience with standardised workflows

Tech Stack

GitHub Actions
Jenkins
Terraform
ECS Fargate
Docker
OIDC