如何让一个阶段依赖于另一个阶段?

MrT*_*x01 4 gitlab gitlab-ci

我有一个 YAML 文件,如下所示。让\xe2\x80\x99s 说*.md 文件已提交,构建不起作用,但测试起作用。这里我怎样才能使测试依赖于构建?就像如果构建不工作,测试应该工作。

\n

提前致谢。

\n
build:\n  stage: build\n  script:\n    - echo "Build is running"\n  only:\n    changes:\n      - Dockerfile\n      - requirements.txt\n      - ./configs/*\ntest:\n  stage: test\n  script:\n    - echo "Test is running"\n    - echo "$CI_JOB_STAGE"\n  dependencies:\n   - build\n
Run Code Online (Sandbox Code Playgroud)\n

Von*_*onC 7

这应该是stages定义的

用于stages定义包含作业组的阶段。
stages是为管道全局定义的。
在作业中使用stage来定义作业属于哪个阶段。

项目的顺序stages定义了作业的执行顺序:

  • 同一阶段的作业并行运行。
  • 下一个阶段的作业在上一个阶段的作业成功完成后运行。

例如:

stages:
 - build
 - test
 - deploy
Run Code Online (Sandbox Code Playgroud)
  • 构建中的所有作业并行执行。
  • 如果构建中的所有作业均成功,则测试作业将并行执行。
  • 如果测试中的所有作业均成功,则部署作业将并行执行。
  • 如果部署中的所有作业均成功,则管道将标记为已通过。

如果任何作业失败,管道将被标记为失败,并且后续阶段的作业不会启动。
当前阶段的作业不会停止并继续运行。

所以,就你而言:

stages:
  - build
  - test
Run Code Online (Sandbox Code Playgroud)

test如果失败则不会运行build