GitLabとその統合CIサービスを使用した問題のセットアップを以下に示します。現在GitLab 8.1を持っています。 Dockerをサポートするgitlabci-multi-runner(0.6.2)。 git
およびbuild-essentials
(現在の名前はprecise:base)を含むようにubuntu:preciseイメージを拡張した後、次の.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