Apa yang harus di-cache saat membangun Rust menggunakan Gitlab CI atau sejenisnya

16 September 2021 [Programming, Rust, Tech]

Pembaruan: caching $RUSTUP_HOME dan $CARGO_HOME tidak berfungsi untuk saya – saya menghapusnya.

Saat membangun proyek Anda dengan Gitlab CI atau alat pembangunan serupa, Anda mungkin menghabiskan banyak waktu melihat bangunan Anda mengulangi langkah yang sama berulang kali. Hal ini sangat membuat frustrasi ketika sebagian besar terdiri dari pengunduhan dan kompilasi hal-hal yang sama seperti yang kita unduh dan kompilasi terakhir kali.

Untuk mengurangi hal ini, kita dapat meminta Gitlab CI untuk menyimpan cache hal-hal yang sama di lain waktu.

Untuk proyek Rust, hal terpenting yang harus di-cache adalah target di direktori lokal.

Pembaruan: tidak, salah Namun, jika Anda memasang alat menggunakan Rustup atau Cargo, akan sangat membantu jika Anda juga menyimpannya dalam cache. Untungnya, Rust mengetahui lokasinya dengan menggunakan variabel lingkungan, dan ini ditentukan dalam image Rust Docker standar.

Pembaruan: jika ada yang tahu cara menyimpan cache keluaran instalasi Rustup dan Cargo, beri tahu saya. Saya rasa saya perlu mendorong image Docker ke Dockerhub untuk melakukannya?

Kita dapat memastikan bahwa kita melakukan cache sebanyak mungkin dengan menambahkan bagian seperti ini ke .gitlab-ci.yml:

    cache:
        key: shared-cache
        paths:
            - target/

Jika Anda menambahkan ini ke semua pekerjaan Anda, mereka akan berbagi satu cache di antara mereka, dan menyimpan cache direktori target lokal serta alat apa pun yang diinstal dengan Rustup atau Cargo.

Berikut adalah contoh lengkap dari proyek Evolve SVGs saya:

image: rust:latest

before_script:
    - rustup component add rustfmt
    - rustup target add wasm32-unknown-unknown
    - cargo install trunk wasm-bindgen-cli

pages:
    stage: deploy
    script:
        - echo "Publishing pages to" $CI_PAGES_URL
        - make deploy
        - mv dist public
    artifacts:
      paths:
        - public
    only:
        - main
    cache:
        key: shared-cache
        paths:
            - target/

test:
    stage: test
    script:
        - make test
    cache:
        key: shared-cache
        paths:
            - target/

News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door

Download Film

Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.