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

Gitlab ci 使用gitlab ci按环境顺序运行作业,gitlab-ci,Gitlab Ci,我正在寻找解决我问题的办法。我想使用gitlab ci按环境顺序运行作业 构建开发(手动启动)--->创建docker映像开发(如果开发构建工作正常,则自动) 构建暂存(手动启动)--->创建docker映像暂存(如果暂存构建工作正常,则自动) 如果开发人员构建失败,我不想创建docker映像开发人员 我该怎么做?此外,是否可以执行for循环来构建每个环境 以下是我目前的工作: stages: - build - docker-image dev:build: stage: bu

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

构建开发(手动启动)--->创建docker映像开发(如果开发构建工作正常,则自动)

构建暂存(手动启动)--->创建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
非常感谢

您应该为手动作业提供帮助,这样管道就不会在不成功的构建上继续进行下去

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

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

在您的dev:image作业中,要么语法错误,要么什么也不做。

您应该为手动作业添加语法,这样管道就不会在不成功的构建上继续运行

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

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


在你的dev:image上,作业要么语法错误,要么什么也不做。

感谢你的回答和帮助。事实上,这里提到了我的问题的一部分:,如果可能的话,我只想对作业进行分组并继续这个过程(为环境构建,然后创建docker映像并部署)。您是否考虑过为每个环境使用不同的git分支,而不是同时执行所有构建?谢谢您的回答和帮助。实际上,我的问题的一部分在这里被引用了:,我只想分组作业并继续这个过程(为env构建,然后创建docker映像并部署),如果可能的话。您是否考虑过为每个环境使用不同的git分支,而不是同时执行所有构建?