You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不覆盖原有内容的情况下编辑导入的CI/CD作业属性

GitLab CI 追加作业before_script内容不覆盖原有配置的方法

要在不修改导入项目的前提下,给已导入的deploy_to_dev作业的before_script追加内容(开头或结尾),可以使用GitLab CI的!reference特殊指令(要求GitLab Runner版本≥13.9)。

开头追加自定义内容

在自定义命令后引用原有作业的before_script:

include:
  - project: "some-project"
    ref: master
    file: "some-project/.gitlab-ci.yml"

deploy_to_dev:
  before_script:
    - echo "This should happen at the very beginning"
    - !reference [deploy_to_dev, before_script]

结尾追加自定义内容

先引用原有作业的before_script,再添加自定义命令:

include:
  - project: "some-project"
    ref: master
    file: "some-project/.gitlab-ci.yml"

deploy_to_dev:
  before_script:
    - !reference [deploy_to_dev, before_script]
    - echo "This should happen at the end"

原理说明

!reference [作业名, 字段名]会直接引用导入作业中对应字段的所有内容,相当于把原有before_script的命令列表合并到当前配置里,从而实现追加效果,而非完全覆盖原有配置。

内容的提问来源于stack exchange,提问作者Steinn Hauser Magnússon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:28:11