Peta dunia

 

EN: Read in English

Dunia C1: Cara Fikir Pipeline · Cabaran bos

Lukis talian

Anda akan belajar: cara reka pipeline yang sesuai untuk setiap pasukan.

Teks BM belum disemak oleh penutur asli.

Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026

Masalahnya

Ketik setiap titik pada garis masa.

Tiga pasukan minta pipeline daripada anda. Satu saiz tak muat semua. Ketik setiap pasukan untuk berkenalan.

Cuba

Pasukan 1, laman kuih Mak Siti. Stesen mana yang ia perlukan?

Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.

      Cuba

      Ini talian Mak Siti. Cuba event satu per satu. Cari yang buat van terus parkir.

      Cuba event satu per satu. Cari yang diminta.

      Apa yang berlaku di GitHub

      Fail workflow .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 }}
      

      Tali sawat

      Push ke main · main

      Cuba

      Pasukan 2, API Kedai Kancil. Susun stesen mereka ikut urutan.

      Stesen pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.

      • Lint kod
      • Jalankan ujian
      • Build image
      • Publish ke GHCR
      • Deploy
      • Scan image

      Teka

      Seseorang rosakkan Dockerfile API.

      Stesen mana akan hentikan tali sawat? Tekan stesen itu, kemudian Run.

      Apa yang berlaku di GitHub

      Fail workflow .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 }}
      

      Tali sawat

      Push ke main · main

      Teka

      Pasukan 3, Klinik Ceria. Mereka mahu staging, kemudian production selepas pengurus kata jalan. Reka bentuk mana yang sesuai?

      Pilih satu jawapan.

      Cuba

      Run talian Klinik Ceria. Bila production menunggu, luluskan bagi pihak pengurus, Dr Lim.

      Run dahulu. Bila job menunggu anda, semak dan luluskan.

      Apa yang berlaku di GitHub

      Fail workflow .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 }}
      

      Tali sawat

      Push ke main · main

      Semak

      Reka bentuk yang baik, atau perlu dibaiki? Leret setiap satu.

      Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.

      1 / 4

      Beri setiap pasukan enam stesen yang sama, sentiasa

      Beri setiap pasukan enam stesen yang sama, sentiasa

      Anda berjaya!

      Kini anda boleh reka pipeline yang sesuai dengan pasukan.