2015-10-04 10 views
24

GitLab CI'da bir GitLab projesi yapılandırılmışsa, yapıyı yerel olarak çalıştırmak için bir yol var mı?Testleri yerel olarak çalıştırmak için GitLab CI'yi kullanın.

Dizüstü bilgisayarımı bir "runner" haline getirmek istemiyorum, yalnızca yerel olarak testleri çalıştırmak için Docker'dan ve .gitlab-ci.yml'dan yararlanmak istiyorum (yani hepsi önceden yapılandırılmış). Bunun bir başka avantajı da aynı ortamı yerel olarak ve CI'da kullandığımdan eminim.

İşte bir örnek how to run Travis builds locally using Docker, GitLab ile benzer bir şey arıyorum.

+3

en son devel'de mevcut olmalıdır, bkz. [Gitlab-ci-multi-runner # 312] (https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/312) – jangorecki

cevap

16

birkaç ay önce bu yana bu gitlab-ci-multi-runner kullanarak mümkündür: Eğer bu çalışma almak için bilgisayarınızda yüklü hem liman işçisi ve gitlab-ci-multi-runner ihtiyaç

gitlab-runner exec docker my-job-name 

Not.

Ayrıca .gitlab-ci.yml dosyanızda tanımlı image anahtarına da ihtiyacınız olacak. Aksi takdirde işe yaramaz.

gitlab-runner exec docker test --docker-volumes "/home/elboletaire/.ssh/id_rsa:/root/.ssh/id_rsa:ro" 

Düzenleme: İşte

lokal gitlab-runner kullanarak Şu anda test için kullanmak çizgi karışıklık nedeniyle, burada yapıştırın gitlab-runner --help sonuç, bu yüzden yapabileceği gitlab runner kurar görebilirsiniz yerel olarak: Gördüğünüz gibi

gitlab-runner --help 
NAME: 
    gitlab-runner - a GitLab Runner 

USAGE: 
    gitlab-runner [global options] command [command options] [arguments...] 

VERSION: 
    1.1.0~beta.135.g24365ee (24365ee) 

AUTHOR(S): 
    Kamil Trzciński <[email protected]> 

COMMANDS: 
    exec   execute a build locally 
    list   List all configured runners 
    run   run multi runner service 
    register  register a new runner 
    install  install service 
    uninstall  uninstall service 
    start  start service 
    stop   stop service 
    restart  restart service 
    status  get status of a service 
    run-single  start single runner 
    unregister  unregister specific runner 
    verify  verify all registered runners 
    artifacts-downloader download and extract build artifacts (internal) 
    artifacts-uploader create and upload build artifacts (internal) 
    cache-archiver create and upload cache artifacts (internal) 
    cache-extractor download and extract cache artifacts (internal) 
    help, h  Shows a list of commands or help for one command 

GLOBAL OPTIONS: 
    --debug   debug mode [$DEBUG] 
    --log-level, -l "info" Log level (options: debug, info, warn, error, fatal, panic) 
    --cpuprofile   write cpu profile to file [$CPU_PROFILE] 
    --help, -h   show help 
    --version, -v  print the version 

, exec komut execute a build locally etmektir.

+0

Eh. Ben sadece bunun için kullanıyorum. BTW, testleri yerel olarak çalıştırmak istediğimde, komutları tek tek çalıştırıyorum. Gitlab ci'yi yerel olarak kullanmak istersem, sadece gitlab-ci sorunları içindir. Hiçbir şeyi yerel olarak test etmenin yolu olmamalı, sadece gitlab-ci sorunlarını bulmak için bir yardımcı olmalı. – elboletaire

+0

"Hiçbir şeyi yerel olarak test etmenin yolu bu olmamalı" Neden? 'gitlab-ci.yml 'önceden yapılandırılmış bir Docker kabı gibidir. Benim soruda işaret ettiğim gibi Travis ile mümkün ve iyi çalışıyor: https://github.com/jolicode/JoliCi –

+0

IMHO JoliCI ayrıca sadece travis sorunları için kullanılmalıdır. Ama hey, bu MHO – elboletaire

0

orada liman işçisi görüntü kullanılarak Gitlab çalıştırıyorsanız: https://hub.docker.com/r/gitlab/gitlab-ce, bir hacim seçeneği ile yerel docker.sock açarak boru hatlarını çalıştırmak mümkündür: -v /var/run/docker.sock:/var/run/docker.sock. Bu seçeneği Gitlab kapsayıcısına eklemek, çalışanlarınızın ana bilgisayardaki docker örneğine erişmesine izin verecektir.

İlgili konular