2015-10-28 23 views
17

Ecco il mio problema con GitLab e il suo servizio CI integrato. Ho un GitLab 8.1 aggiornato. e un gitlabci-multi-runner (0.6.2) con supporto Docker. Dopo l'estensione del ubuntu: immagini precisa per includere git e build-essentials (ora chiamato precisa: base) ho ottenuto il seguente .gitlab-ci.yml esecuzione:Immagini di Docker multiple in .gitlab-ci.yml

image: precise:base 
before_script: 
    - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev 
    - apt-get install --yes libarchive-dev liblzma-dev 

build: 
    script: 
    - mkdir build/ 
    - cd build 
    - cmake -D CMAKE_BUILD_TYPE=Debug ../ 
    - make 

Ora la mia domanda è come includere più posti di lavoro su diverse immagini? Perché ho bisogno di verificare se il codice viene compilato (e in seguito funziona) su diversi sistemi operativi come Ubuntu Precise, Ubuntu Trusty, CentOS 6, CentOS 7. Per ridurre il lavoro penso che il modo migliore sia fornire come base immagini di Docker diverse.

Ora la domanda è: come deve essere il .gitlab-ci.yml come supportare questo?

risposta

27

È possibile define the image to use per job.

Per esempio:

before_script: 
    - apt-get install --yes cmake libmatio-dev libblas-dev libsqlite3-dev libcurl4-openssl-dev 
    - apt-get install --yes libarchive-dev liblzma-dev 

build:precise: 
    image: precise:base 
    script: 
    - mkdir build/ 
    - cd build 
    - cmake -D CMAKE_BUILD_TYPE=Debug ../ 
    - make 

build:trusty: 
    image: trusty:base 
    script: 
    - mkdir build/ 
    - cd build 
    - cmake -D CMAKE_BUILD_TYPE=Debug ../ 
    - make 
Problemi correlati