【问题标题】:Gitlab CI: Using "environment" key with trigger in jobGitlab CI:在作业中使用 \"environment\" 键和触发器
【发布时间】:2022-12-09 21:06:22
【问题描述】:

我希望在具有触发器的作业中使用如下所示的环境关键字。


deploy:
 stage: deploy 
 environment:
   name: develop     
 variables:    
   ENV: develop    
 trigger:         
   include:
     - local: '<path to pipeline config>'

但是,它给出了错误“配置包含未知键:环境”

使用“脚本”而不是触发器可以正常工作。无论如何它适用于触发器?

【问题讨论】:

标签: gitlab gitlab-ci


【解决方案1】:

是的,显然那是不允许的。我也感觉到了这个错误,并期望环境配置适用于如下所示的子管道

sit-pipeline:
  trigger:
    include:
      - local: pipeline/sit-pipeline.yaml
  stage: deploy
  when: manual
  needs: ["sit-approval"]
  environment:
    name: sit
    url: http://sanjay-sit.com

但这给出了一个错误 This GitLab CI configuration is invalid: sit-pipeline config contains unknown keys: environment.

这本来是一个很好的功能,尤其是当我们想要进行一些审批流程并保护环境时。

【讨论】:

    【解决方案2】:

    您不能在桥接作业上设置环境。您必须在包含的配置中的触发作业上设置 environment.name

    【讨论】:

      【解决方案3】:

      对于子(同一项目)管道,您可能无能为力,但如果有人正在寻找多项目管道的解决方案(就像我一样),那么您可以通过 script 块中的 API 执行触发器。

      这种触发方式几乎与使用 trigger 关键字相同,据我所知,唯一的区别是没有 strategy 选项,因此您必须自己实施必要的行为。

      好消息是 GitLab 注意到通过 API 调用的上游和下游管道之间的关系,并在 GUI 中显示了这一点。另一个优点是您可以重试此类作业,这与触发作业不同。所以这与Environments and Deployments feature 很好地集成。

      另请参阅文档:

      【讨论】:

        猜你喜欢
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-04
        • 2022-06-12
        • 2020-08-04
        • 1970-01-01
        相关资源
        最近更新 更多