Skip to content
EgyKode
Challengegithub-actions

GitHub Actions: Build, Scan and Deploy to EKS — Challenge

The same pipeline as the Jenkins lab, with no server to maintain and no stored AWS credentials.

Time
27 min
Level
Intermediate
Objectives
4 objectives
Cost
Billable

Before you start

You will need

  • A GitHub repository
  • An AWS account
  • An EKS cluster (or adapt to any Kubernetes)

You will be able to

  • Authenticate to AWS from CI with OIDC instead of an access key
  • Push to ECR and deploy to EKS from a workflow
  • Compare a hosted CI service with a self-managed controller honestly

CostBillable

Depends on an existing cluster. Actions minutes are free on public repositories. ECR storage is inside the free tier at this scale; the EKS cluster you deploy to is $0.10/hour if you created one.

How to clean up

You are done when

0 of 4

The goal#

Achieve the same outcome as GitHub Actions: Build, Scan and Deploy to EKS, from an empty starting point, without the steps.

The Jenkins pipeline works, and it needs a server, plugins, backups and upgrades. For a project that already lives on GitHub, there is a path with none of that.

This is not a replacement for the Jenkins lab. Knowing both, and why you would pick each, is the actual skill.

What must be true when you are done#

  • A push builds an image tagged with the commit SHA and pushes it to ECR.
  • No AWS access key exists in the repository — authentication is OIDC.
  • A vulnerability at HIGH or CRITICAL fails the workflow before the push.
  • The deployment rolls out, and the workflow fails if the rollout does not complete.

Rules#

  • Do not open the guided lab until you are finished, or until the same problem has held you up for 20 minutes.
  • Documentation is allowed and encouraged.
  • Verify every criterion with a command whose output you can read.

If you get stuck#

  1. What did you expect, exactly?
  2. What happened instead — the error text, not a paraphrase?
  3. Which layer is that error from?
  4. What is the smallest command that proves the layer below is fine?

The concept behind it

Stuck?Open the guided lab

Phase complete · 08 Continuous delivery

You can now: A commit becomes a scanned, tagged image and a deployment, with no manual step.

Next phase

Lab 47 of 58 on the project path

09 · ObservabilityDeploying Kube-Prometheus-Stack on AWS EKSGet metrics out of the cluster and into Grafana, so 'is it healthy' has an answer that is not a guess.31 minAdvanced