我正在与Gitlab-CI合作,我正在考虑所有分支机构的一项工作,基本上可以将其视为某种单元测试,另一项工作专门用于主分支机构,例如复制并执行一些实际操作。单元测试作业必须在所有分支上运行。
我想知道脚本是否可以重叠,因此基本上所有分支作业都可以在主要作业之前执行作为一种验证。
我们的想法是在合并请求中强制执行两个条件:
我简化了.gitlab-ci.yml
,如下所示:
job_all_branches:
script:
- unit-tests
job_master_branch:
script:
- copy-files
only:
- master
当然,我们可以提一下,我们可以将所有分支作业中的单元测试脚本复制并粘贴到job_master_branch中调用的脚本中,但我想知道是否有办法避免冗余定义。
答案 0 :(得分:0)
找到解决方案,实际上非常简单,我只需要使用阶段......:
- 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
因此它们按顺序处理:)