BM: Baca dalam Bahasa Melayu
World C1: Pipeline Thinking · Boss challenge
Draw the line
You will learn: how to design a pipeline that fits each team.
Checked with GitHub Actions 2026-10 on 31 Oct 2026
The problem
Tap each point on the timeline.
Three teams ask you for a pipeline. One size won’t fit all. Tap each team to meet them.
Try it
Team 1, Mak Siti’s kuih site. Which stations does it need?
Drag a card into a box. Or tap the card, then tap the box.
Hint
No containers, no manager. Keep only what this team really needs.Try it
Here is Mak Siti’s line. Try the events. Find the one where the van stays parked.
Try the events. Find the one asked for.
Workflow file .github/workflows/site.yml
name: Kuih site on: push: branches: [main] pull_request: permissions: contents: read jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: npm ci && npm run lint && npm test deploy: needs: test if: github.event_name == 'push' runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: npm ci && npm run build - run: npm run deploy env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
The line
Push to main · main
Hint
Try the pull request. Look at the deploy station.Try it
Team 2, the Kedai Kancil API. Put their stations in order.
First station at the top. Put these in order. Use the arrows, or drag.
- Run the tests
- Deploy
- Build the image
- Lint the code
- Scan the image
- Publish to GHCR
Hint
Check the code, cook the image, check the image, then ship.Predict
Someone broke the API’s Dockerfile.
Which station will stop the line? Tap it, then press Run.
Workflow file .github/workflows/api.yml
name: API line on: push: branches: [main] permissions: contents: read packages: write jobs: line: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: npm ci - run: npm run lint - run: npm test - run: docker build -t api:${{ github.sha }} . - name: Scan the image uses: aquasecurity/trivy-action@v0.36.0 with: image-ref: api:${{ github.sha }} severity: CRITICAL exit-code: '1' - name: Publish to GHCR run: | echo "$TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin docker tag api:${{ github.sha }} ghcr.io/kancil/api:${{ github.sha }} docker push ghcr.io/kancil/api:${{ github.sha }} env: TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npm run deploy env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
The line
Push to main · main
Hint
The Dockerfile is the recipe for the image. Which station cooks the image?Predict
Team 3, Klinik Ceria. They want staging, then production after a manager says go. Which design fits?
Pick one answer.
Try it
Run Klinik Ceria’s line. When production waits, approve it for the manager, Dr Lim.
Run it. When a job waits for you, check it and approve.
Workflow file .github/workflows/release.yml
name: Clinic release on: push: branches: [main] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: npm ci && npm test && npm run build - uses: actions/upload-artifact@v7 with: name: site path: dist staging: needs: build runs-on: ubuntu-latest environment: staging steps: - uses: actions/checkout@v7 - uses: actions/download-artifact@v8 with: name: site path: dist - run: npx wrangler deploy --env staging env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - run: curl --fail --silent https://staging.example.com/health production: needs: staging runs-on: ubuntu-latest environment: production steps: - uses: actions/checkout@v7 - uses: actions/download-artifact@v8 with: name: site path: dist - run: npx wrangler deploy env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
The line
Push to main · main
Check
Good design, or needs work? Swipe each one.
Swipe right for good, left for needs work. Or use the buttons.
Give every team the same six stations, always
You did it!
You can now design a pipeline that fits the team.
Bahasa Melayu
Tiga pasukan minta pipeline daripada anda. Satu saiz tak muat semua. Ketik setiap pasukan untuk berkenalan.
Pasukan 1, laman kuih Mak Siti. Stesen mana yang ia perlukan?
Ini talian Mak Siti. Cuba event satu per satu. Cari yang buat van terus parkir.
Pasukan 2, API Kedai Kancil. Susun stesen mereka ikut urutan.
Seseorang rosakkan Dockerfile API.
Pasukan 3, Klinik Ceria. Mereka mahu staging, kemudian production selepas pengurus kata jalan. Reka bentuk mana yang sesuai?
Run talian Klinik Ceria. Bila production menunggu, luluskan bagi pihak pengurus, Dr Lim.
Reka bentuk yang baik, atau perlu dibaiki? Leret setiap satu.
Kini anda boleh reka pipeline yang sesuai dengan pasukan.
You finished this before. Practice is always welcome!
Official docs: Continuous deployment · Deployments and environments · DORA: software delivery performance metrics
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?