首页 文章

如何设置gitlab-ci作业以重用特定主控作业中的所有分支作业?

提问于
浏览
0

我正在与Gitlab-CI合作,我正在考虑所有分支机构的一项工作,基本上可以将其视为某种单元测试,另一项工作专门用于主分支,例如复制和执行一些实际操作 . 单元测试作业必须在所有分支上运行 .

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

我们的想法是在合并请求中强制执行两个条件:

  • 如果管道成功,则仅允许合并合并请求

  • 如果所有讨论都已解决,则仅允许合并合并请求

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

job_all_branches:
  script:
    - unit-tests

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

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

1 回答

  • 0

    找到一个解决方案,它实际上非常简单,我只需要使用阶段......:

    感觉就像一个完全白痴,我以前没想过这个 .
    无论如何这里低于我想要达到的目标:

    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
    

    因此它们按顺序处理:)

相关问题