Plusieurs images de Docker.gitlab-ci.yml
Voici mon problème d'installation avec GitLab et son service de CI intégré. J'ai actuellement un GitLab 8.1. et un gitlabci-multi-runner (0.6.2) avec Docker support. Après l'extension de l'ubuntu: image précise pour inclure git
et build-essentials
(maintenant nommé précision:) j'ai obtenu le suivant .gitlab-ci.yml
fonctionnement:
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
maintenant, ma question Est comment inclure plus de travaux sur différentes images? Parce que j'ai besoin de vérifier si le code se compile (et plus tard fonctionne) sur différents des systèmes comme Ubuntu Precise, Ubuntu Trusty, CentOS 6, CentOS 7. Pour réduire le travail je pense que la meilleure façon est de fournir différentes images Docker comme base.
maintenant, les questions sont comment le .gitlab-ci.yml
ressembler à l'appui de cette?
2 réponses
Vous pouvez définir l'image à utiliser par emploi.
Par exemple:
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
vous pouvez utiliser Anchors
pour le .gitlab-ci.yml
plus clairement. (Mais cela nécessite GitLab 8.6 et GitLab Runner v1.1.1.)
Comme ceci:
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_template: &build_definition
script:
- mkdir build/
- cd build
- cmake -D CMAKE_BUILD_TYPE=Debug ../
- make
build:precise:
image: precise:base
<<: *build_definition
build:trusty:
image: trusty:base
<<: *build_definition