【问题标题】:How to pass a keyword to Git on commit如何在提交时将关键字传递给 Git
【发布时间】:2019-04-02 12:40:23
【问题描述】:

我在 Gitlab 上完成了 CICD 作业,其中提交存储库中的文件会触发作业、构建文件并将文件发布到服务器。它工作正常,但现在我的工作也应该在提交时识别服务器,因为环境现在有 4 台服务器指向 4 个不同的区域。除了我可以在 Gitlab CICD 作业中检索的提交消息之外,开发人员如何在提交时传递一些关键字(即使是 2 个字母的单词也可以)。

我研究了 Gitlab 的各种环境变量,但没有一个符合我的要求。有什么想法/建议吗?

【问题讨论】:

    标签: git gitlab gitlab-ci gitlab-ci-runner


    【解决方案1】:
    • 您可以使用标签,并仅在具有特定格式的标签上触发构建作业
    • 您可以创建一个需要变量的管道,并通过直接 http 调用(例如:curl 或特定脚本)触发该管道

    更多细节:

    • OP 没有能力更改 git 存储库的结构
    • 存储库包含一个目录,其中包含文件列表
      • 每个文件都描述了一个特定的产品
      • 每个文件都是一个 yaml 文件
      • 根据产品,文件需要在修改时推送到 4 个潜在目标服务器中的一个或多个

    我的建议是:添加一些描述需要将哪些文件推送到哪个服务器的内容。

    例如:如果需要推送到srv1和srv3,在文件中添加# @companycicd : publish srv1 srv3注释

    并更新 CICD 作业,以便从该特定注释行获取每个文件的目标服务器列表。

    【讨论】:

    • 我已经尝试了第二个选项并且正在工作,但我希望在提交发生时运行该作业,因此不能期望来自用户的变量。第一个选项是否意味着我需要标记每个提交并从标记消息中获取标识符?
    • 您能解释一下这 4 个区域是什么,以及提交如何与一个区域相关联并在另一个区域中被忽略?
    • 对我在这里造成的混乱感到抱歉。我有几个产品文件的单一存储库,我需要将其发布到 IBM API Connect 中的四个不同目录。很少有提交(少数产品)需要转到目录 1,而其他提交可能需要发布到目录 2 或 3 或 4。
    • 目录在你的 git repo 中是如何分开的?每个目录一个文件?每个目录一个目录?
    • 目录在 git repo 中没有分开......我们有一个单一的 repo ......所有产品文件都将出现在这个 repo 中......因此我需要来自提交用户的关键字该产品应该发布到哪个目录...有时某些产品也需要发布到多个目录...
    猜你喜欢
    • 2016-09-16
    • 2011-06-03
    • 2017-02-06
    • 2021-12-12
    • 2014-08-14
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多