Peta dunia

 

EN: Read in English

Dunia C3: Lancar & Deploy

Misi capstone 3: Lancarkan

Anda akan belajar: beri Kedai Kancil staging, production, langkah canary dan job rollback, kemudian buktikan dengan release yang teruk.

Teks BM belum disemak oleh penutur asli.

Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026

Masalahnya

Pilih satu event. Tekan Run dan tengok tali sawat.

Tag v1.0.1: canary gagal smoke test, production dilangkau, dan rollback berjalan.

Apa yang berlaku di GitHub

Fail workflow .github/workflows/release.yml

name: Release
on:
push:
tags: ['v*']
permissions:
contents: read
jobs:
canary:
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v7
- run: npm ci
- run: npx wrangler deploy --env staging
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- run: curl --fail --silent "$STAGING_URL/health"
env:
STAGING_URL: ${{ vars.STAGING_URL }}
production:
needs: canary
runs-on: ubuntu-latest
environment:
name: production
url: ${{ vars.SITE_URL }}
steps:
- uses: actions/checkout@v7
- run: npm ci
- run: npx wrangler deploy --env production
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
rollback:
needs: canary
if: failure()
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v7
- run: npm ci
- run: npx wrangler rollback --env staging --message "Canary failed"
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}

Tali sawat

Push tag v1.0.1 · v1.0.1

Misi 3: Lancarkan. Kedai Kancil dah uji dan build dirinya sendiri. Sekarang jadikan release selamat. Matlamat anda: release teruk yang ditangkap dan diundur oleh pipeline. Run untuk lihat matlamatnya.

Cuba

Langkah 1: dua dapur. Bahagian depan web kedai anda masuk ke pelan Workers percuma Cloudflare. Tambah ini dalam wrangler.jsonc:

"account_id": "YOUR_ACCOUNT_ID",
"env": { "staging": {}, "production": {} }

Misi sebenar

  1. gh api --method PUT "repos/{owner}/{repo}/environments/staging"
  2. gh api --method PUT "repos/{owner}/{repo}/environments/production"
  3. gh secret set CLOUDFLARE_API_TOKEN --env staging
  4. gh secret set CLOUDFLARE_API_TOKEN --env production
  5. gh variable set STAGING_URL --body "https://kedai-kancil-staging.YOUR-SUBDOMAIN.workers.dev"

0 daripada 7 langkah siap · Tanda anda disimpan.

Cuba

Langkah 2: bina release.yml. Canary dulu. Production selepasnya, dengan kelulusan anda. Rollback hanya kalau canary gagal.

Tekan blok untuk tambah. Susun ikut urutan.

Blok

Workflow anda

Tekan satu blok di atas untuk mula.

Fail workflow .github/workflows/

name: Release

Apa yang berjalan

Belum ada apa untuk dijalankan.

Cuba

Langkah 3: hantar satu release yang elok, kemudian satu yang teruk dengan sengaja.

Misi sebenar

  1. git add .github/workflows/release.yml && git commit -m "ci: add release workflow" && git push
  2. git tag v1.0.0 && git push origin v1.0.0
  3. git tag v1.0.1 && git push origin v1.0.1

0 daripada 7 langkah siap · Tanda anda disimpan.

Semak

Biar API awam GitHub sahkan. Taip nama pengguna anda, kemudian semak.

Semak di GitHub

Nama pengguna anda dihantar ke api.github.com sahaja.

  • Repo Kedai Kancil anda awamBelum disemak
  • Workflow berjalan sekurang-kurangnya 3 kaliBelum disemak
  • Ada sekurang-kurangnya 2 tag releaseBelum disemak

Semak

API tak boleh tengok dalam larian. Semak yang ini sendiri.

Misi sebenar

0 daripada 4 langkah siap · Tanda anda disimpan.

Anda berjaya!

Kini anda boleh lancarkan Kedai Kancil dengan selamat, dengan butang undur.

Nak tahu lebih (pilihan)

Keselamatan: pelan Workers percuma dah cukup di sini. Containers untuk API perlukan Workers Paid. Tetapkan amaran bajet dulu. Guna token ujian dan padam bila selesai. Canary ini ialah salinan staging. Canary sebenar hantar sebahagian pengguna sebenar. Di Cloudflare, itu gradual deployment.