.gitlab-ci.yml 中有多个 Docker 图像
Multiple Docker images in .gitlab-ci.yml
这是我使用 GitLab 及其集成的 CI 服务设置的问题。我有一个当前的 GitLab 8.1。以及支持 Docker 的 gitlabci-multi-runner (0.6.2)。在扩展 ubuntu:precise 图像以包括 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
必须如何支持它?
你可以define the image to use per job。
例如:
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
这是我使用 GitLab 及其集成的 CI 服务设置的问题。我有一个当前的 GitLab 8.1。以及支持 Docker 的 gitlabci-multi-runner (0.6.2)。在扩展 ubuntu:precise 图像以包括 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
必须如何支持它?
你可以define the image to use per job。
例如:
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