如何设置 gitlab-ci 作业以在 specific master only 作业中重新使用所有分支作业?

How to setup gitlab-ci job to re-use all branches job in a specific master only job?

我正在与 Gitlab-CI 合作,我正在考虑为所有分支做一份工作,基本上可以将其视为某种单元测试,另一份工作专用于 master 分支,例如复制并做一些实际操作。单元测试作业必须在所有分支上 运行。

我想知道脚本是否可以重叠,这样基本上所有分支作业都可以在主作业之前执行,作为一种验证。

这个想法是强制执行合并请求中可用的两个条件:

我将 .gitlab-ci.yml 简化了一点如下:

job_all_branches:
  script:
    - unit-tests

job_master_branch:
  script:
    - copy-files
  only:
    - master

当然,可以提到我们可以将所有分支作业中的单元测试脚本复制并粘贴到 job_master_branch 中调用的脚本中,但我想知道是否有办法避免冗余定义。

找到了一个解决方案,实际上超级简单,我只需要使用阶段...:[=​​19=] - https://docs.gitlab.com/ee/ci/yaml/#stages
- https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/

感觉自己像个白痴,以前都没弄明白。
无论如何,下面是我想要实现的目标:

stages:
  - test
  - deploy
test_job:
  stage: test
  script:
    - ./my-test-script.sh
  allow_failure: false
  tags:
    - my
    - lovely
    - test
    - runner


deploy_job:
  stage: deploy
  script:
    - ./my-deploy-script.sh
  allow_failure: false
  only:
    - master
  tags:
    - my
    - lovely
    - deployment
    - runner

因此它们是按顺序处理的:)