Menyimpan Dependensi dalam Tembolok demi Kecepatan
Terapkan pembolokan untuk mempercepat eksekusi alur kerja secara signifikan dengan menggunakan kembali dependensi yang dihasilkan dan keluaran build.
Menyimpan Dependensi dalam Tembolok demi Kecepatan adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Percepat Alur Kerja dengan Penyimpanan Tembolok
Pernahkah Anda memperhatikan bahwa alur kerja Anda mengunduh ulang dependensi yang sama setiap kali? Hal itu memperlambat proses!
Penyimpanan tembolok di GitHub Actions memungkinkan Anda menyimpan dan menggunakan kembali berkas dari eksekusi sebelumnya. Fitur ini secara drastis mempercepat eksekusi alur kerja berikutnya.
Kenali Aksi Tembolok
GitHub menyediakan aksi khusus bernama actions/cache@v3. Aksi ini dirancang untuk menyimpan dan memulihkan berkas agar alur kerja Anda lebih cepat.
Aksi ini cerdas: aksi ini memeriksa apakah tembolok sudah ada sebelum mencoba memulihkannya, lalu menyimpannya jika belum ada.
Kunci dan Jalur Tembolok
Dua parameter penting untuk actions/cache adalah key dan path:
key: String unik yang mengidentifikasi tembolok Anda. Jika tembolok dengan kunci ini ditemukan, tembolok tersebut dipulihkan.path: Jalur berkas atau direktori yang ingin Anda masukkan ke tembolok. Ini memberi tahu aksi apa yang harus disimpan atau dipulihkan.
Kunci sering menyertakan nilai hash berkas dependensi untuk memastikan tembolok dibatalkan saat dependensi berubah.
Menyimpan Dependensi Node.js dalam Tembolok
Mari simpan node_modules dalam tembolok untuk proyek Node.js. Kita akan menggunakan hashFiles untuk membuat kunci dinamis berdasarkan package-lock.json.
Cobalah menjalankan potongan alur kerja sederhana ini:
name: Node.js CI with Cache
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Node.js modules
uses: actions/cache@v3
with:
path: node_modules
key: npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
npm-
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testCadangan dengan Kunci Pemulihan
Bagaimana jika key persis Anda tidak cocok dengan tembolok mana pun? Di sinilah restore-keys berguna!
restore-keys menyediakan daftar kunci cadangan untuk ditelusuri. Jika kunci utama (misalnya, npm-${{ hashFiles(...) }}) tidak ditemukan, GitHub Actions mencoba menemukan tembolok menggunakan restore-keys secara berurutan.
Pada contoh kita, npm- mencoba menemukan tembolok apa pun yang diawali "npm-", yang berguna jika hanya versi minor dependensi yang berubah.
Menyimpan Dependensi Python dalam Tembolok
Penyimpanan tembolok bukan hanya untuk Node.js! Anda dapat menerapkan prinsip yang sama pada bahasa lain seperti Python. Di sini, kita menyimpan lingkungan virtual Python dan tembolok pip.
Kunci di sini menggunakan hashFiles('requirements.txt'), sedangkan jalurnya mengarah ke lingkungan virtual dan direktori tembolok pip.
name: Python CI with Cache
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Cache Python dependencies
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.venv
key: pip-${{ hashFiles('requirements.txt') }}
restore-keys: |
pip-
- name: Install dependencies
run: |
python -m venv .venv
.venv/bin/pip install -r requirements.txt
- name: Run tests
run: .venv/bin/python -m unittest discoverKapan Tembolok Harus Dibatalkan
Tembolok hanya berguna jika cukup mutakhir. Jika dependensi Anda berubah, tembolok Anda juga harus berubah!
Tembolok otomatis dibatalkan jika key utama Anda (misalnya, npm-${{ hashFiles('package-lock.json') }}) berubah. Jika package-lock.json diperbarui, nilai hash berubah dan tembolok baru dibuat.
Anda juga dapat memaksa pembuatan ulang tembolok dengan mengubah kunci secara manual (misalnya, menambahkan akhiran versi seperti npm-v2-${{ hashFiles(...) }}).
Cakupan dan Batas Tembolok
Baik untuk mengetahui cara kerja tembolok:
- Cakupan: Tembolok dibatasi menurut repositori dan cabang. Tembolok pada cabang
maintidak akan digunakan pada cabang fitur, kecuali Anda secara eksplisit mengonfigurasilookup-path. - Batas Ukuran: Setiap tembolok dapat berukuran hingga 10GB.
- Masa Simpan: Tembolok disimpan selama 7 hari setelah akses terakhir. Tembolok lama yang tidak digunakan akan dihapus secara otomatis.
Praktik Penyimpanan Tembolok yang Cerdas
Agar mendapatkan manfaat maksimal dari penyimpanan tembolok:
- Gunakan
hashFiles: Selalu kaitkan kunci tembolok dengan berkas manifes dependensi (misalnya,package-lock.json,requirements.txt). - Tentukan
pathsecara spesifik: Hanya simpan hal yang diperlukan (misalnya,node_modules,~/.cache/pip). - Gunakan
restore-keys: Sediakan kunci cadangan untuk meningkatkan tingkat keberhasilan penggunaan tembolok. - Hindari Menyimpan Data yang Mudah Berubah dalam Tembolok: Jangan simpan berkas yang sering berubah atau sangat besar dan unik pada setiap eksekusi (misalnya, artefak hasil kompilasi yang ditujukan untuk penerapan).
Tantangan Kunci Tembolok
Anda memiliki proyek Java yang menggunakan Maven. Dependensinya ditentukan dalam pom.xml, dan Maven biasanya menyimpan berkas JAR yang diunduh di ~/.m2/repository.
Konfigurasi tembolok mana yang paling memastikan dependensi Maven disimpan dalam tembolok dan dibatalkan dengan benar saat pom.xml berubah?
Ringkasan: Tembolok untuk Kecepatan!
Kerja bagus! Anda telah mempelajari cara menerapkan penyimpanan tembolok di GitHub Actions untuk mempercepat alur CI/CD secara signifikan.
- Aksi
actions/cacheadalah alat Anda. - Gunakan
keydanpathuntuk menentukan apa yang disimpan dan cara menyimpannya dalam tembolok. hashFilesmembuat kunci dinamis untuk pembatalan yang cerdas.restore-keysmenyediakan kunci cadangan yang bermanfaat.
Dengan menyimpan dependensi secara cerdas dalam tembolok, Anda menghemat waktu pembuatan dan sumber daya komputasi, sehingga alur Anda lebih efisien!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menyimpan Dependensi dalam Tembolok demi Kecepatan” gratis?
Ya — teks lengkap “Menyimpan Dependensi dalam Tembolok demi Kecepatan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menyimpan Dependensi dalam Tembolok demi Kecepatan”?
Terapkan pembolokan untuk mempercepat eksekusi alur kerja secara signifikan dengan menggunakan kembali dependensi yang dihasilkan dan keluaran build. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Menyimpan Dependensi dalam Tembolok demi Kecepatan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Build Matriks untuk Berbagai Lingkungan
- Menyimpan Dependensi dalam Tembolok demi Kecepatan
- Alur Kerja dan Actions yang Dapat Digunakan Kembali
- Eksekusi Kondisional dan Dependensi Tugas