EN: Read in English
Dunia C2: Pipeline Container
Concurrency, penapis laluan dan cache
Anda akan belajar: tiga helah yang buat tali sawat lebih laju dan murah.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Anda push 3 pembaikan kecil dalam 2 minit. Tali sawat jalankan ketiga-tiganya sepenuhnya. Hanya yang terakhir penting. Apa yang boleh bantu?
Pilih satu jawapan.
Tengok
Pilih satu event. Tekan Run dan tengok tali sawat.
Push ke menu-page mulakan satu run. Run lama pada branch yang sama dibatalkan dulu. Kemudian ujian berjalan dan lulus.
Fail workflow .github/workflows/ci.yml
name: CI on: push: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: node-version: 24 cache: npm - run: npm ci - run: npm test
Tali sawat
Push ke menu-page · menu-page
concurrency: Run dalam kumpulan yang sama tunggu giliran, atau run yang lama dibatalkan. letak run dalam satu kumpulan: workflow sama, branch sama. cancel-in-progress: true batalkan run yang lama. Tekan Run.
Semak
Anda push ke main dan ke menu-page serentak. Adakah satu batalkan yang lain?
Pilih satu jawapan.
Cuba
penapis laluan (path filter): paths atau paths-ignore: mulakan workflow hanya bila fail tertentu berubah. langkau tali sawat bila hanya fail tertentu berubah. Yang ini tulis paths-ignore: ['docs/**', '**.md']. Susun setiap push.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Cuba
cache: npm simpan muat turun npm dalam pantri antara run. Tekan Run dua kali. npm ci kedua lebih cepat.
Run dua kali. Tengok run kedua ambil jalan pintas.
Fail workflow .github/workflows/ci.yml
name: CI on: push: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: node-version: 24 cache: npm - run: npm ci - run: npm test
Tali sawat
Push ke menu-page · menu-page
Teka
Satu PR ubah README.md sahaja. Semakan CI wajibnya guna penapis laluan ini. Boleh anda merge?
Pilih satu jawapan.
Anda berjaya!
Kini anda boleh buat tali sawat langkau, batal dan guna semula kerja.
Nak tahu lebih (pilihan)
Jangan batalkan deploy separuh jalan: cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jaga main. Penapis laluan tak disemak untuk push tag. Cache yang lama tak diguna akan dipadam.
Latihan sebenar (pilihan), dalam repo latihan awam:
Misi sebenar
0 daripada 3 langkah siap · Tanda anda disimpan.
English
You push 3 small fixes in 2 minutes. The belt runs all 3 in full. Only the last one matters. What would help?
Concurrency puts runs in a group: same workflow, same branch. cancel-in-progress: true cancels the older run. Press Run.
You push to main and to menu-page at the same time. Does one cancel the other?
A path filter skips the belt when only some files change. This one says paths-ignore: ['docs/**', '**.md']. Sort each push.
cache: npm keeps npm’s downloads in the pantry between runs. Press Run twice. The second npm ci is quicker.
A PR changes only README.md. Its required CI check uses this path filter. Can you merge?
You can now make the belt skip, cancel and reuse work.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Control the concurrency of workflows and jobs · Workflow syntax: paths and paths-ignore · Dependency caching
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?