开发者问题收集

Gitlab CI:在作业中使用带有触发器的“环境”键

2022-01-19
3776

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


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

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

使用“脚本”而不是触发器可以正常工作。无论如何,它可以与触发器一起使用吗?

3个回答

是的,显然这是不允许的。我也遇到了这个错误,并期望环境配置适用于下面的子管道

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

但这给出了一个错误,这个 GitLab CI 配置无效:sit-pipeline 配置包含未知键:环境。

这本来是一个很好的功能,特别是当我们想要设置一些审批流程并保护环境时。

Sanjay Bharwani
2022-05-03

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

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

好消息是,GitLab 注意到通过 API 调用的上游和下游管道之间的关系,并在 GUI 中显示这一点。另一个优点是,与触发器作业不同,您可以重试此类作业。因此,这可以与 环境和部署功能 完美集成。

另请参阅文档:

tporeba
2022-12-09

您无法在桥接作业上设置环境。您必须在包含的配置中对触发的作业设置 environment.name 。例如,在 pipeline/sit-pipeline.yaml

sytech
2022-01-20