Menggunakan CircleCI - version: 2.1 - untuk penerapan berkelanjutan di mana dependensi terinstal dalam cache. Berdasarkan save_cache dokumentasi:

Menghasilkan dan menyimpan cache file atau direktori file seperti dependensi atau kode sumber di penyimpanan objek kita. Pekerjaan selanjutnya dapat memulihkan cache ini.

Skenario saat ini:

Lihat langkah cache disederhanakan di bawah ini di file .circleci/config.yml:

steps:
  - node/with-cache:
      steps:
        - checkout
        - run: npm install
        - save_cache:
            key: dependencies
            paths: node_modules

Masalahnya muncul setelah menambahkan paket baru ke proyek sehingga file package.json berubah. Pada saat yang sama CircleCI menampilkan pesan untuk langkah Menyimpan Cache:

Melewati pembuatan cache, cache sudah ada untuk kunci: dependensi
Ditemukan satu dibuat pada 23-05-2020 19:29:29 +0000 UTC

Kemudian setelah memulihkan cache jelas tidak menemukan paket yang baru ditambahkan di langkah build:

./src/index.tsx
Tidak dapat menemukan modul: 'nama-paket'. Pastikan paket ini diinstal.

Pertanyaan:

Apakah ada cara untuk memeriksa perubahan package.json di dalam pipeline? Idealnya saya akan menginstal dependensi hanya dalam kasus-kasus itu, sehingga cache dapat dibersihkan dan diperbarui.

Mungkin saya tidak melihat sesuatu dalam dokumentasi. Bantuan apa pun dihargai, terima kasih!

0
norbitrial 25 Mei 2020, 12:50

1 menjawab

Jawaban Terbaik

Masalahnya adalah kunci cache yang Anda gunakan adalah "dependensi", string biasa. Kunci ini tidak pernah berubah, jadi Anda akan selalu menggunakan cache yang sama persis.

Anda perlu menggunakan kunci cache yang berubah, sebaiknya berdasarkan package.lock. Silakan baca bagian kunci cache di CircleCI Docs untuk informasi lebih lanjut: https://circleci.com/docs/2.0/caching/#using-keys-and-templates

1
FelicianoTech 25 Mei 2020, 16:47