[英]GitLab CI template job with different names
GitLab CI 中是否有一種方法可以使用通用作業模板並運行具有不同名稱的該作業的多個實例?
下面我在build.yml中有一個通用的作業定義,它指定作業將在階段構建中運行,並且它將使用給定的 Dockerfile 運行 docker build。
我希望能夠使用基於此構建模板的不同名稱運行多個構建(並行,但我現在排除了它以保持配置盡可能干凈)。 build_a.yml和build_b.yml中的示例,我在其中為指定要使用哪個 Dockerfile 的作業設置了一個特定變量。
在主文件gitlab-ci.yml 中,我想包含這些特定的作業( build_a和build_b )。
通用.yml
image:
name: docker:dind
services:
- docker:dind
stages:
- build
構建.yml
build:
stage: build
script:
- docker build -f $DOCKER_FILE
build_a.yml
include: 'build.yml'
build:
variables:
DOCKER_FILE: DockerfileA
build_b.yml
include: 'build.yml'
build:
variables:
DOCKER_FILE: DockerfileB
.gitlab-ci.yml
include:
- 'common.yml'
- 'build_a.yml'
- 'build_b.yml'
問題是,當我包含這些構建作業時,它們具有相同的作業名稱,並且第一個作業 ( build_a ) 將被生成的 Yaml 文件中的第二個作業 ( build_b ) 覆蓋。
我在文檔或其他類似問題中遺漏了另一種方法嗎?
解決上述問題的一種方法是使用extends關鍵字擴展特定構建文件中的作業配置。
下面的更新將創建 3 個構建作業( .build 、 build_a和build_b ),運行器將排除名為“.build”的作業,因此只會執行build_a和build_b 。
通用.yml
image:
name: docker:dind
services:
- docker:dind
stages:
- build
構建.yml
.build:
stage: build
script:
- docker build -f $DOCKER_FILE
build_a.yml
include: 'build.yml'
build_a:
extends: .build
variables:
DOCKER_FILE: DockerfileA
build_b.yml
include: 'build.yml'
build_b:
extends: .build
variables:
DOCKER_FILE: DockerfileB
.gitlab-ci.yml
include:
- 'common.yml'
- 'build_a.yml'
- 'build_b.yml'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.