如果一个或多个作业在GitLab CI中成功,我如何才能通过阶段?

如果一个或多个作业在GitLab CI中成功,我如何才能通过阶段?,gitlab,gitlab-ci,gitlab-omnibus,Gitlab,Gitlab Ci,Gitlab Omnibus,我有一个.gitlab ci.yml,看起来像这样: image: "python:3.7" .python-tag: tags: - python before_script: - python --version - pip install -r requirements.txt - export PYTHONPATH=${PYTHONPATH}:./src - python -c "import sys;print(sys.p

我有一个
.gitlab ci.yml
,看起来像这样:


image: "python:3.7"

.python-tag:
  tags:
    - python

before_script:
  - python --version
  - pip install -r requirements.txt
  - export PYTHONPATH=${PYTHONPATH}:./src
  - python -c "import sys;print(sys.path)"

stages:
  - Static Analysis
  - Local Tests
  - Integration Tests
  - Deploy

mypy:
  stage: Static Analysis
  extends:
    - .python-tag
  script:
    - mypy .

pytest-smoke:
  stage: Local Tests
  extends:
    - .python-tag
  script:
    - pytest -m smoke

int-tests-1:
  stage: Integration Tests
  when: manual
  allow_failure: false
  trigger:
    project: tests/gitlab-integration-testing-integration-tests
    strategy: depend

int-tests-2:
  stage: Integration Tests
  when: manual
  allow_failure: false
  trigger:
    project: tests/gitlab-integration-testing-integration-tests
    strategy: depend

deploy:
  stage: Deploy
  extends:
    - .python-tag
  script:
    - echo "Deployed!"
集成阶段中有多个作业,需要相当长的时间才能运行。不寻常的是,所有的集成测试都需要运行。这就是为什么我们在这些上粘贴了一个手动标志,并且所需的特定标志将手动运行

如何使
部署
阶段要求
集成测试
中的一个或多个作业通过?我可以像现在这样做,也可以通过从集成测试作业中删除
allow\u failure:false
而不做任何事情


我想要求至少通过一次。

如果每个作业仅在作业成功时生成工件

工件:
路径:
-success.txt
脚本:
#生成success.txt文件
您应该能够在下一阶段测试该文件是否存在

您需要在下一阶段中添加此项(如下),以便能够读取文件:

工件:
路径:
-success.txt

这可能会起作用,但也需要设置
允许故障:true
选项,否则在运行下一阶段之前,仍必须运行集成步骤中的所有项目。然而,对于
allow\u failure:true
,它并不要求运行的作业实际通过。