gitlab-ci
'da, .gitlab-ci.yml
dosyasında, before_script
adı verilen gerçek betik çalıştırmalarından önce komutları yürütmek için bir seçenek var. .gitlab-ci.yml
örnekleri, burada yardımcı programların kurulumunu göstermektedir. Bununla birlikte, fark ettiğim şey, bir docker yürütücüsü kullanılırken bu değişikliklerin Docker'da önbelleğe alınmamasıdır. Bu komutları çalıştırdıktan sonra docker'ın görüntüyü önbelleğe aldığını, böylece bir sonraki çalışma ya da test için docker'ın before_script
'dan sonra üretilen önbelleğe alınmış görüntüyü yükleyeceğini düşünmüştüm. Bu, yapıları büyük ölçüde hızlandıracaktır. .gitlab-ci.yml
biraz benziyor benim Örnek olarak Gitlab docker executor - önbellek resmi before_script
image: ubuntu
before_script:
- apt-get update -qq && apt-get install -yqq make ...
build:
script:
- cd project && make
yaml dosyasının image
bölümünde. Bunun dezavantajı, ne zaman bir bağımlılık eklemek istediğimde, koşucu makineye giriş yapmam ve yapının başarılı olacağından önce görüntüyü güncellemem gerektiğidir. Sadece bağımlılığı apt-get install
sonuna eklemek zorunda kaldım ve docker/gitlab-ci uygun önbelleğe alma işlemine sahip olsaydı çok daha hoş olurdu.
de benim proje bir yan ürünü değildi herşeyi önbelleğe düşündüm hangi untracked: true
ayarı çalıştı .gitlab-ci.yml
bir cache
komut vardır, ancak herhangi bir etkiye sahip değildi.
İstediğim davranışı elde etmenin bir yolu var mı?
Bunu düşünmüştüm ve bazı umutsuzluklar var, ama her bir "before_script" satırını bir RUN komutu olarak çalıştırmak çok zor olmayacak gibi görünüyor ve daha sonra docker bu düzeyde önbelleğe alma işlemini yapmak zorunda değil. – Erik
Evet, kesinlikle mümkün olduğunu düşünüyorum, ama arkasındaki mantık için en iyi tahminim cevabımın sonuna yakın olurdu, çünkü farklı taahhütlerde farklı "before_script" yönergelerine sahip olsaydınız işler biraz dağınık olabilirdi. Ayrıca 'before_script', paket kurmanın dışında her türlü şeyi yapmak için kullanılabilir. Merak ediyorsanız, her zaman github sayfasını gönderebilirsiniz. Cevap vermekte gerçekten iyiler. Yayınladığım şey grubumuza iyi hizmet etti. – Suever
Şu an açıkladığınız gibi biriyle çalışacağım. – Erik