Soru {Before _,} {install, script} .travis.yml seçenekleri arasındaki farklar nelerdir?


İçinde .travis.yml yapılandırma dosyası arasındaki pratik fark nedir before_install, install, before_script ve script seçenekler?

Bu seçenekler arasındaki farklılıkları açıklayan hiçbir belge bulamadım.


39
2017-12-20 01:01


Menşei


Buraya mı baktın? docs.travis-ci.com/user/customizing-the-build - nos
Evet ve "ertelenmiş" ile "başarısız" arasındaki fark dışında, aradaki farkın ne olduğu ile ilgili bir açıklama yoktur. before_install, install ve before_script. - Daniele Orlando


Cevaplar:


Bu bölümleri kullanmanıza gerek yoktur, ancak bunu yaparsanız, yaptığınız şeyin amacını bildirirsiniz:

before_install:
  # execute all of the commands which need to be executed 
  # before installing dependencies
  - composer self-update
  - composer validate

install:
  # install all of the dependencies you need here
  - composer install --prefer-dist

before_script:
  # execute all of the commands which need to be executed 
  # before running actual tests
  - mysql -u root -e 'CREATE DATABASE test'
  - bin/doctrine-migrations migrations:migrate

script:
  # execute all of the commands which should make the build pass or fail
  - vendor/bin/phpunit
  - vendor/bin/php-cs-fixer fix --verbose --diff --dry-run

Örneğin, bkz. https://github.com/localheinz/composer-normalize/blob/0.8.0/.travis.yml.


32
2017-12-20 18:21



Hala neden anlamıyorum docs.travis-ci.com/user/docker, docker build komut konur before_install adım. Olmamalı install adım? - Pahlevi Fikri Auliya
@PahleviFikriAuliya Örnek bağlamında anladığım kadarıyla, docker build Test ortamını kurmak için kullanılır - eğer bağımlılıklar kurmadan önce ihtiyaç duyulursa, o zaman bunu before_install bölüm, aksi takdirde belki before_script bölüm daha uygun olurdu. Bakmak docs.travis-ci.com/user/languages/ruby/#Bundler Bağımlıların yüklenmesi için docker'ın gerekli olmaması gerektiğini anlıyorum. - localheinz


Bir şey ters gittiğinde fark işin durumundadır.

Git 2.17 (Q2 2018) şunu göstermektedir: 3c93b82 işlemek (08 Jan 2018) tarafından SZEDER Gábor (szeder).
(Birleştirilmiş Junio ​​C Hamano - gitster - içinde taahhüt c710d18, 08 Mar 2018) 

Bu pratik arasındaki farkı göstermektedir before_install, install, before_script ve script seçenekleri

travis-ci: 'sırasında Git'i kurmakscript'faz

Travis CI'da Git'i kurmaya ve test etmeye başladığımızdan beri (522354d: Travis CI desteğini ekle, 2015-11-27, Git v2.7.0-rc0);   'before_script'aşama ve test paketini çalıştırın'script'faz   (Daha sonra tanıtılan 32 bit Linux ve Windows oluşturma işleri hariç,   nerede inşa ediyoruzscript'faz').

Tersine, Travis CI uygulaması inşa etmek ve test etmek   'script'fazı; aslında Travis CI'nin   'script'C / C ++ projelerinin aşaması:

./configure && make && make test

Travis CI'nin bunu neden bu şekilde yaptığını ve neden daha iyi olduğunu   Bizimkinden yaklaşmak, başarısız inşaat işlerinin nasıl olduğu   kategorize. Yapım işinde bir şeyler ters gittikten sonra durumu   be:

  • 'başarısız oldu'eğer bir komutta 'script'faz bir hata verdi.
      Bu, Travis CI web arayüzünde kırmızı bir 'X' ile gösterilir.

  • 'Hatalı'eğer bir komutta 'before_install','install'veya   'before_script'faz bir hata verdi veya yapım işi aşıldı   zaman sınırı.
      Bu kırmızı bir 'olarak gösterilir! web arayüzünde.

Bu, hem insanlar hem de Travis CI webine bakmak için daha kolay   arayüzü ve Travis CI API'sini sorgulayan otomatik araçlar için   başarısız bir yapının bizim sorumluluğumuz olduğunda ne zaman karar vermesi   insan dikkati, yani bir derleyici bir derleme nedeniyle 'başarısız' olduğunda   Hata ya da bir test hatası ve bunun ötesinde bir şeyden kaynaklandığı zaman   kontrolü ve yapıyı yeniden başlatarak sabitlenebilir, ör. zaman   'bağımlısı' oluşturmak, çünkü bir bağımlılık nedeniyle yüklenemedi   geçici bir ağ hatası veya OSX oluşturma işi   zaman sınırı.

Git 'in yapısının sakıncasıbefore_script'bu bir evre   görmek için 'tüm' hatalı 'yapım işlerinin iz kaydını kontrol etmek zorunda   Bir derleyicinin neden olabileceği gibi, hataya ne sebep oldu?   hata.
  Bu, web arayüzünde ek tıklamalar ve sayfa yüklemeleri ve otomatik araçlarda ek karmaşıklık ve API istekleri gerektirir.

Bu nedenle, Git'i binadan hareket ettirinbefore_script'faza   'script'faz, komut dosyasının adını da buna göre günceller.
  'ci/run-builds.sh'şimdi temelde boşalır, kaldırır.
  Yapılı iş yapılandırmamızın birçoğu varsayılanımızı geçersiz kılar 'before_script' hiçbirşey yapmamak; bu değişiklik ile bizim varsayılanbefore_scriptyapmaz   Bir şey, yani, bu geçersiz kılma direktiflerini de kaldırın.


6
2018-03-11 03:26