gpt4 book ai didi

gitlab - 如何在 .gitlab-ci.yml 中重用作业

转载 作者:行者123 更新时间:2023-12-03 15:42:33 28 4
gpt4 key购买 nike

我目前在我的 CI 文件中有两个几乎相同的工作。

第一个用于从任何 git 分支手动编译发布版本。

deploy_internal:
stage: deploy
script: ....<deploy code>
when: manual

第二个是由调度程序用来从开发分支发布每日构建。
scheduled_deploy_internal:
stage: deploy
script: ....<deploy code from deploy_internal copy/pasted>
only:
variables:
- $MY_DEPLOY_INTERNAL != null

在两个地方重复所有部署代码感觉是错误的。它变得更糟。还有deploy_external、deploy_release 和scheduled 变体。

我的问题:
有没有办法可以结合 deploy_internalscheduled_deploy_internal以便保留手动/计划行为(基本上是 DRY)?

或者:有没有更好的方法来安排我的工作?

编辑:
原标题:部署作业。手动执行,除非在预定的时候

最佳答案

您可以使用 YAML anchor 和别名来重用脚本。

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

或者您可以使用 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

关于gitlab - 如何在 .gitlab-ci.yml 中重用作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61357650/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com