Skip to main content
This lesson outlines the DevOps prerequisites and migration plan for modernizing CI/CD pipelines—specifically migrating Jenkins pipelines to GitHub Actions. We’ll focus on a Node.js application as the initial migration target and show how to preserve Docker, Kubernetes, and serverless deployment workflows during the transition. Dasher Technologies is a software provider that helps businesses integrate data, applications, and devices across hybrid cloud and on-premises environments. Their platform enables enterprises to streamline operations, improve scalability, and accelerate digital transformation. To modernize, Dasher’s R&D team began migrating services to the cloud and adopting containerized deployments; the Node.js app is the first candidate, with Java and Python projects planned next. The DevOps team led by Jordan Carter currently uses a Jenkins-based pipeline that integrates Docker for container builds, Kubernetes for orchestration, and AWS Lambda for serverless components. The team’s objectives for this migration are:
  • Reduce maintenance overhead and simplify CI/CD configuration.
  • Improve automation with Git-centric workflows.
  • Maintain or improve existing test, scan, and deployment guarantees.
  • Preserve Docker and Kubernetes deployment patterns and serverless deployment steps.
A presentation slide titled "Task Dash Team DevOps Requirement" showing the Dasher Technologies logo and a team avatar labeled "Jordan." On the right are icons and three listed tools: Docker for containerization, Kubernetes for orchestration, and AWS Lambda functions.
After using Jenkins for CI/CD, Jordan evaluated several modern CI/CD platforms to find a replacement that better aligns with a cloud-native, Git-first approach. The primary candidate options included GitHub Actions, GitLab CI/CD, Atlassian Bamboo, Travis CI, and CircleCI. Below is a concise comparison to help you evaluate migration targets for an organization with existing Docker, Kubernetes, and serverless workflows.
A DevOps pipeline diagram titled "Understanding DevOps Pipeline" showing stages from Feature branch to Pull request to Main branch. It outlines steps like AWS EC2 VM deploy and integration testing, updating Docker image tags and Kubernetes deploy, DAST (OWASP ZAP) scanning and approval, and AWS Lambda deployment/testing.
Why GitHub Actions was a strong candidate
  • Native repository integration simplifies triggers (push, pull_request, schedule).
  • YAML-based workflows are declarative and reusable via composite actions and reusable workflows.
  • Marketplace offers prebuilt actions for Docker build/push, Kubernetes kubectl/helm deployments, OWASP ZAP scanning, and AWS deployments.
  • Flexible runner options: GitHub-hosted or self-hosted runners for on-premises workloads.
A presentation slide titled "Task Dash Team CICD Tool Requirement" showing logos and names of CI/CD tools, including GitHub Actions, CircleCI, GitLab CI/CD, Atlassian Bamboo, and Travis CI.
Migration approach — high level
  • Inventory current Jenkins pipeline stages and external integrations (artifact registries, container registries, Kubernetes clusters, AWS Lambda).
  • Map each Jenkins stage to an equivalent GitHub Actions job or reusable workflow.
  • Reuse existing Dockerfiles, helm charts, and tests; replace pipeline orchestration with YAML-based workflows and Actions from the Marketplace where appropriate.
  • Implement security scanning (DAST, SAST) as separate workflow steps or reusable workflows to enforce policy across repositories.
  • Validate deployments in a staging environment (Kubernetes or EC2) and then apply production promotion gates (manual approvals, required checks).
Recommended mapping of Jenkins concepts to GitHub Actions Sample (conceptual) GitHub Actions workflow snippet
Note: the snippet above is a conceptual starting point. During migration you’ll want to modularize common steps into reusable workflows or composite actions to reduce duplication across repositories. What we’ll cover in this lesson
  • How to translate typical Jenkins pipeline stages into GitHub Actions workflow files.
  • How to build, tag, and publish Docker images from Actions to a container registry (Docker Hub or GitHub Container Registry).
  • Strategies for Kubernetes deployments from Actions using kubectl or helm.
  • How to integrate security scanning (DAST/SAST) into workflows using OWASP ZAP and marketplace actions.
  • Using GitHub Environments and required reviewers to create production promotion gates.
  • Best practices for secrets management, self-hosted runners, and cost/scale considerations.
References and further reading
This lesson covers the migration plan and technical considerations for replacing Jenkins with GitHub Actions, including how to map existing Jenkins stages (build, test, security scans, image publishing, and deployments) into GitHub workflows while keeping Docker, Kubernetes, and serverless targets in mind.

Watch Video