0Pricing
DevOps Bootcamp · Pelajaran

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 test

Cadangan 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 discover

Kapan 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 main tidak akan digunakan pada cabang fitur, kecuali Anda secara eksplisit mengonfigurasi lookup-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 path secara 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/cache adalah alat Anda.
  • Gunakan key dan path untuk menentukan apa yang disimpan dan cara menyimpannya dalam tembolok.
  • hashFiles membuat kunci dinamis untuk pembatalan yang cerdas.
  • restore-keys menyediakan 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

  1. Build Matriks untuk Berbagai Lingkungan
  2. Menyimpan Dependensi dalam Tembolok demi Kecepatan
  3. Alur Kerja dan Actions yang Dapat Digunakan Kembali
  4. Eksekusi Kondisional dan Dependensi Tugas
← Kembali ke DevOps Bootcamp