我目前在我的 CI 文件中有两个几乎相同的工作。
第一个用于从任何git 分支手动编译发布版本。
deploy_internal:
stage: deploy
script: ....<deploy code>
when: manual
Run Code Online (Sandbox Code Playgroud)
第二个是由调度程序用来从开发分支发布每日构建。
scheduled_deploy_internal:
stage: deploy
script: ....<deploy code from deploy_internal copy/pasted>
only:
variables:
- $MY_DEPLOY_INTERNAL != null
Run Code Online (Sandbox Code Playgroud)
在两个地方重复所有部署代码感觉是错误的。它变得更糟。还有deploy_external、deploy_release 和scheduled 变体。
我的问题:有没有一种方法可以组合deploy_internal并scheduled_deploy_internal保留手动/计划行为(基本上是 DRY)?
或者:有没有更好的方法来安排我的工作?
编辑:
原标题:部署作业。手动执行,除非在预定的时候
Mur*_*ati 15
您可以使用 YAML 锚点和别名来重用脚本。
deploy_internal:
stage: deploy
script:
- &deployment_scripts |
echo "Deployment Started"
bash command 1
bash command 2
when: manual
scheduled_deploy_internal:
stage: deploy
script:
- *deployment_scripts
only:
variables:
- $MY_DEPLOY_INTERNAL != null
Run Code Online (Sandbox Code Playgroud)
或者您可以使用extends关键字。
.deployment_script:
script:
- echo "Deployment started"
- bash command 1
- bash command 2
deploy_internal:
extends: .deployment_script
stage: deploy
when: manual
scheduled_deploy_internal:
extends: .deployment_script
stage: deploy
only:
variables:
- $MY_DEPLOY_INTERNAL != null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3601 次 |
| 最近记录: |