Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gitlab的同一容器中运行多个阶段?_Gitlab_Gitlab Ci_Pipeline - Fatal编程技术网

如何在gitlab的同一容器中运行多个阶段?

如何在gitlab的同一容器中运行多个阶段?,gitlab,gitlab-ci,pipeline,Gitlab,Gitlab Ci,Pipeline,我有三个阶段: - provision - cpp tests - python tests 我需要在运行测试之前运行配置。Gitlab建议使用工件在阶段之间传递结果,但我担心这在我的场景中是不可能的,因为ansible做了很多不同的事情(不仅仅是生成一些配置文件/二进制文件)。理想情况下,我希望能够在同一个容器中运行所有三个阶段,因为在我的场景中,阶段是逻辑的,基本上可以合并为一个。我希望避免这样做,因为这会使.gitlab ci.yml更难理解。如果您有3个任务可以合并成一个任务,并且您只

我有三个阶段:

- provision
- cpp tests
- python tests

我需要在运行测试之前运行配置。Gitlab建议使用工件在阶段之间传递结果,但我担心这在我的场景中是不可能的,因为ansible做了很多不同的事情(不仅仅是生成一些配置文件/二进制文件)。理想情况下,我希望能够在同一个容器中运行所有三个阶段,因为在我的场景中,阶段是逻辑的,基本上可以合并为一个。我希望避免这样做,因为这会使
.gitlab ci.yml
更难理解。

如果您有3个任务可以合并成一个任务,并且您只想在同一个容器中运行3个单独的函数,以使.gitlab-ci.yml文件更容易理解,我建议使用(见下文)

.provision_template: &provision_definition
    - XXX

.cpp_tests_template: &cpp_tests_definition
    - YYY

.python_tests_template: &python_tests_definition
    - ZZZ

my_job:
  script:
    - *provision_definition
    - *cpp_tests_definition
    - *python_tests_definition