BM: Baca dalam Bahasa Melayu
World C2: Container Pipelines
Capstone mission 2: Ship it
You will learn: to give Kedai Kancil a real pipeline that lints, tests, scans and pushes.
Checked with GitHub Actions 2026-10 on 31 Oct 2026
The problem
Mission 2: ship it! Your Kedai Kancil repo from Mission 1 gets its own green line. First, put the stations in order.
First station at the top. Put these in order. Use the arrows, or drag.
- Scan for critical CVEs
- Build the images
- Run the tests
- Push to GHCR (main only)
- Lint the Dockerfiles
Try it
Build ci.yml: lint and test, then build, scan and push both images. You will copy this file next.
Tap blocks to add them. Put them in order.
Blocks
Your workflow
Tap a block above to start.
Workflow file .github/workflows/
name: Ship it
What runs
Nothing to run yet.
Hint
When, token, then three jobs: lint, test, image. In image: Buildx, tags, build, scan, login, push.Try it
Now do it for real, step by step. Your ticks are saved.
Real mission
git switch -c add-green-linemkdir -p .github/workflowsdocker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12git add .github && git commit -m "Add the green line" && git push -u origin add-green-line
0 of 8 steps done · Your ticks are saved.
Check
GitHub can confirm part of it. Type your username and press Check now.
Check it on GitHub
- Your kedai-kancil repo is publicNot checked yet
- It has .github/workflows/ci.ymlNot checked yet
- Workflows ran at least twice: the PR and mainNot checked yet
Check
The rest only you can see. Open your repo and tick what is true.
Self-check
0 of 5 steps done · Your ticks are saved.
You did it!
You can now ship a real app: lint, test, scan, push.
Go deeper (optional)
Where the story breaks. A real belt moves one pack at a time. A pipeline runs many jobs at once. Each worker forgets everything after its job. And a tag is not glued on. It can move to another pack. Only the digest (sha256:…) never changes.
Bahasa Melayu
Misi 2: hantar! Repo Kedai Kancil anda dari Misi 1 dapat talian hijaunya sendiri. Mula-mula, susun stesen ikut urutan.
Bina ci.yml: lint dan uji, kemudian bina, imbas dan push kedua-dua image. Anda akan salin fail ini selepas ini.
Sekarang buat betul-betul, langkah demi langkah. Tanda anda disimpan.
GitHub boleh sahkan sebahagiannya. Taip nama pengguna anda dan tekan Semak sekarang.
Yang selebihnya hanya anda boleh nampak. Buka repo anda dan tanda yang betul.
Kini anda boleh hantar aplikasi sebenar: lint, uji, imbas, push.
You finished this before. Practice is always welcome!
Official docs: Docker docs: GitHub Actions · Publishing Docker images · Working with the Container registry
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?