[英]Multiple Docker images in .gitlab-ci.yml
以下是我使用GitLab及其集成CI服務設置的問題。 我有一個當前的GitLab 8.1。 和一個支持Docker的gitlabci-multi-runner(0.6.2)。 在擴展了ubuntu:精確圖像以包含git
和build-essentials
(現在名為precise:base )后,我得到了以下.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
現在我的問題是如何在不同的圖像上包含更多的工作? 因為我需要檢查代碼是否在不同的操作系統(如Ubuntu Precise,Ubuntu Trusty,CentOS 6,CentOS 7)上編譯(以及稍后工作)。為了減少工作量,我認為最好的方法是提供不同的Docker鏡像作為基礎。
現在問題是.gitlab-ci.yml
必須如何支持這個?
您可以定義每個作業使用的圖像 。
例如:
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
你可以使用Anchors
更清晰地制作.gitlab-ci.yml
。 (但這需要GitLab 8.6和GitLab Runner v1.1.1。)
像這樣:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.