使用gitlab-ci按环境顺序运行作业

时间:2019-08-21 13:12:32

标签: gitlab-ci

我正在寻找解决问题的方法。我想使用gitlab-ci按环境顺序运行作业。

Build dev(手动启动)----->创建docker image dev(如果dev build有效,则自动生成)

构建阶段(手动启动)------>创建docker映像阶段(如果阶段构建有效,则自动执行) ...

如果开发人员构建失败,我不想创建docker映像开发人员。

我该怎么做?此外,是否可以进行for循环以构建每个环境?

这是我目前正在做的事情:

stages:
  - build
  - docker-image

dev:build:
  stage: build
  script:
      - npm install
      - npm run build:development
  when: manual

staging:build:
  stage: build
  script:
      - npm install
      - npm run build:staging
  when: manual

demo:build:
  stage: build
  script:
      - npm install
      - npm run build:demo
  when: manual

dev:image:
  stage: docker-image
  script: 
      - docker build -t registry/project:dev --build-arg environment=development .
      #- docker push registry/project:dev
  when: on_success

staging:image:
  stage: docker-image
  script:
      - docker build -t registry/project:staging --build-arg environment=staging .
      #- docker push registry/project:staging
  when: manual

demo:image:
  stage: docker-image
  script:
      - docker build -t registry/project:demo --build-arg environment=demo .
      #- docker push registry/project:demo
  when: manual

非常感谢您

1 个答案:

答案 0 :(得分:0)

您应该disallow failure进行手动作业,以使管道不会在失败的构建中继续进行下去。

默认情况下,允许手动作业失败。 禁止失败:

dev:build:
  stage: build
  script:
      - npm install
      - npm run build:development
  when: manual
  allow_failure: false

注意:

when: on_success

您的 dev:image 作业语法错误或什么都不做。