前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gitlab-ci 配置复用 - reference tags

gitlab-ci 配置复用 - reference tags

作者头像
老麦
发布2022-12-24 09:45:48
7050
发布2022-12-24 09:45:48
举报
文章被收录于专栏:Go与云原生Go与云原生

GitLab 13.9 中增加了一个新的关键字 !reference。这个关键字可以在任意位置复用已存在的配置。

复用,永远是标准化的第一步。

demo

代码语言:javascript
复制
# tree

ci/setup.yml
.gitlab-ci.yml

  • ci/setup.yml
代码语言:javascript
复制
# 以 . 开头的 job 名称为 隐藏job , 将在 ci 中将被忽略
#  https://docs.gitlab.com/ee/ci/yaml/README.html#hide-jobs
.setup:
  image: hub-dev.rockontrol.com/docker.io/library/alpine:3.12
  script:
    - echo creating environment

  • .gitlab.ci.yml
代码语言:javascript
复制
## 包含 ci/setup.yml 文件
include:
  - local: ci/setup.yml

stages:
  - prepare
  - run
  - clean

# 本地隐藏 job
.clean:
  image: hub-dev.rockontrol.com/docker.io/library/debian:buster-slim
  after_script:
    - echo make clean

job1:
  stage: prepare
  # 引用 setup 中的 image
  image: !reference [.setup, image]
  script:
    - !reference [.setup, script]
    - echo running my own command in job1

# 隐藏 job 将不会被执行
.job2:
  stage: run
  # 复用 setup 中的 image
  image: !reference [.setup, image]
  script:
    - echo running my own command in job2

job3:
  stage: clean
  # 复用 `job1 中复用的 image`
  image: !reference [job1, image]
  script:
    - !reference [.clean, after_script]

执行效果如下

注意

  1. !reference 不仅可以复用本文中的 image , 更可以复用其他 job 中的任意字段
  2. !reference 配合 include.hidden_job 更可以实现通用配置
  3. !reference 关键字后的数组实际就是被复用内容在 job 索引路径。(ex. [.clean, after_script], 为 .clean 隐藏job 的 after_script 命令)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熊猫云原生Go 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档