2015-04-28 23 views
8

GitLab CI ile Windows için gitlab-ci-multi runner'ı (64bit) kullanarak çalışmaya başladım. Her şey yolunda gayet iyi çalışıyor, depolarımın bağlantıları var ve yapılandırılmış işlerim her basımda başlıyor.Gitlab-ci-çok runner kullanarak GitLab CI'de otomatik olarak testler nasıl çalıştırılır

Şimdi ne yapmak isteyen tüm bağımlılıkları indirmek için npm install çalışan bir iş ve karma start karma.conf.js çalışan veya hırıltı kullanarak ve grunt test çalıştırarak karma/yasemin ile yazılan tüm testleri yürütür bir işe sahip olduğunu.

yüzden çalıştığımız ilk iş oldu:

cd app 
npm install 
karma start karma.conf.js 

ilk iki komutları idam, ama sonuncusu tamamen göz ardı edilir. Bu yüzden işleri bölmeye çalıştım. İlk komutlar kendi işlerini alırlar (sekme "paralel olarak çalışırlar") ve sonuncusu "başarıya koşmak" sekmesinde kendi işine taşındı. Artık tüm bağımlılıklar kurulur ve ikinci iş başlar. Şimdiye kadar çok iyi, ama ikinci iş önceden yüklenmiş tüm bağımlılıkları kaldırmakla başlar ve karma start karma.conf.js'u çalıştırmayı dener. Bu, npm bağımlılığı "açısal-alay" indirilmediğinden, tüm testlerde başarısızlıkla sonuçlanır. İkinci işe npm install eklediğimde (ki bu bana pek bir anlam ifade etmiyor), karma görev tekrar göz ardı edilecek.

Burada sorun nedir? Bunu nasıl düzeltebilirim? Ve her test yürütme sırasında her zaman bağımlılıkları indirmenin bir yolu var mı?

+0

Bunu hiç bir zaman '.gitlab-ci.yml' ile çalışmak istediniz mi? – montrealist

+1

Evet! Şimdi mükemmel çalışıyor :)! Çözümümü aşağıda göndereceğim. – error1337

cevap

11

Bu soru gönderildiği için, Gitlab CI yapılandırması için .gitlab-ci.yml kullanımına geçti. Ben bağımlılıkları yüklemek için önerilen yol ile bu sorun başkalarına yardım etmek, aşağıda benim son çözüm nakletmek istiyorum böyle

before_script: 
    - npm install 

test: 
    script: npm test 
+3

Windows kullanıcıları için küçük ipucu ... "npm install" gibi komutlar çalışmıyor, "call npm install" komutunu kullanmalısınız. Npm.cmd gerçekte cmd olduğunda, Gitlab CI ("cmd/c npm.cmd ..." gibi bir şey kullanarak) çalıştırdığında, Windows üzerinde npm ile gerçekten bir npm.cmd olmakla ilgili bir şey var, – error1337

+0

tüm işi bitirir. Çok emin değil, ama bunun gibi bir şey. – Ivan

4

olarak before_script komutla olduğuna inanıyoruz. Benim .gitlab-ci.yaml dosya ve benim karma.conf.js uygulama-kök dizininde bulunur. Karma için, Windows ve ayrıca linux sunucum için harika olan PhantomJS kullanıyorum. Windows için

Çözüm:

image: node:4.2.2 

cache: 
    paths: 
    - node_modules/ 

stages: 
    - test 

test_app: 
    stage: test 
    script: 
    - run npm install 
    - run karma start karma.conf.js 

Şu benim uygulamalar oluşturan/test için bir linux sunucu kullanıyorum. Bunu linux için çalışmak için "koş" u kaldırmanız gerekir.

Birden fazla işiniz varsa, Tamlyn'in yukarıda yazdığı gibi bağımlılık yükleme komutlarını "before_script" bölümüne taşıyabilirsiniz.

Lütfen, eğer hala sizin için çalışmıyorsa, söyle. Belki daha fazla fikrim var ... Çalışmak için çok çalıştım.

+0

Çok yararlı, paylaşım için teşekkürler! Bana göre, “bir kere başla” işlemini yapmak için karma start -single-run işlevini kullanmak yararlı oldu. – fedorqui

İlgili konular