如何设置 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
因此它们是按顺序处理的:)
我正在与 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
因此它们是按顺序处理的:)