如果一个或多个作业在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
,它并不要求运行的作业实际通过。