gitlab-ci.yml关键字(一)(全局)image、variables、include

image

这是一个全局关键字,如果流水线的执行器是使用docker来运行的话,那可以指定docker中的镜像。如果执行器是shell的话,那该关键字是无用的,即便机器中已近安装了docker的环境,该关键字可以在全局或者某一个job中使用都可以。
可以将其放在顶部,则这个镜像会成为所有job的默认环境。或者加一个default关键字类似:

image: node:alpine
default:
  image: node:alpine

上述表会在所有job执行之前安装node:alpine镜像。当然有可能流水线中若干的job其镜像不一定一样,也可以在每个job中各自添加镜像

job_name:
	image: node:latest

上述表示的就是在job_name这个任务中,会安装nodejs官方镜像来构建。
也可以是一个完整的镜像地址

job_name:
	image:registry.example.com/my-group/my-project/ruby:2.7

上述表示在job_name中会使用ruby2.7的镜像

当然有时会全局的镜像和job内种的镜像同时存在,此时job中的镜像会覆盖全局的默认镜像。例如:

default:
  image: ruby:3.0

rspec:
  script: bundle exec rspec

rspec 2.7:
  image: registry.example.com/my-group/my-project/ruby:2.7
  script: bundle exec rspec

在这个例子中ruby:3.0的镜像是所有流水线任务的默认镜像,但在rspec 2.7这个job中并没有使用默认的,而是job内的ruby:2.7会覆盖全局的ruby:3.0

variables

这是一个全局关键字,可以定义在流水线中的变量,然后在各个地方使用这些变量,类似我们编程时声明的变量一样。
变量的名称可以使用数字,

  • 字母或者是下划线,在一些shell执行器中首字符必须是一个字母。
  • 这个变量必须是一个字符串

该关键字可以在全局或者某一个job中使用都可以
例子:

variables:
  NRM: 'http://npm.dc.xxx-it.com/'
  
pre:
  stage: .pre
  script: 
    - echo $NRM

上述定义了一个变量NRM表一个nrm源,然后在pre job中的.pre阶段打印出这个变量

效果如下:
在这里插入图片描述

除了我们自定义的一些变量之外,gitlab runner也提供了一些全局变量。可以使用export关键字打印出有哪些环境变量。

gloable_variables:
  script:
    - export

在这里插入图片描述
使用这些变量的方式也是$+名称

image: node:alpine

variables:
  NRM: 'http://npm.dc.xxx-it.com/'
  
pre:
  stage: .pre
  script: 
    - echo $NRM

gloable_variables:
  script:
    - export

use_gloable_variable:
  script:
    -echo $CI_COMMIT_AUTHOR

在这里插入图片描述

include

全局关键字。可以在本地的gitlab-ci.yml文件中引入其他地方的gitlab-ci.yml的配置文件。

include:local

可以使用include:local来引入同一个仓库同一个分支中的其他配置文件(其他配置文件必须是.yml 或者.ymal扩展名)
例如:

include:
  - local: '/templates/.gitlab-ci-template.yml'

include:project

可以通过include:project 来引入同一个gitlab 服务中其他项目中的gitlab-ci.yml配置
主要有下面几部分构成,

  • project:表在该gitlab服务器中的项目地址
  • file:一个数组,表引入该项目中的哪些文件
  • ref:非必须,表该项目中的那个分支。没有就是master(main)
include:
  - project: 'my-group/my-project'
    ref: main                                      # Git branch
    file: '/templates/.gitlab-ci-template.yml'
  - project: 'my-group/my-project'
    ref: v1.0.0                                    # Git Tag
    file: '/templates/.gitlab-ci-template.yml'
  - project: 'my-group/my-project'
    ref: 787123b47f14b552955ca2786bc9542ae66fee5b  # Git SHA
    file: '/templates/.gitlab-ci-template.yml'

include:remote

使用include:remote 可以通过一个完整的URL地址加载远端的gitlab-ci.yml的配置文件。
远端的配置文件使用HTTP/GTTPS 的GET请求可以获取的到

include:
  - remote: 'https://gitlab.com/example-project/-/raw/main/.gitlab-ci.yml'

这个关键字用得好的话非常有用,特别是在一些需要横向对接的团队。可以在业务团队中的项目流水线中直接include一个远端的地址,作为入口,引入远端的配置文件,而对接的公共服务团队只需维护远端真正的配置文件即可。这样,远端的配置文件进行修改或功能添加的时候所有引入这个文件的其他项目都可以同步更新对应的流水线脚本了

其他

查看所有gitlab CI/CD关键字列表

<think>好的,用户想在Obsidian中配置或使用GitLab CI的配置文件gitlab-ci.yml。首先,我需要明确Obsidian的主要功能是作为知识管理和笔记工具,它本身并不直接支持CI/CD功能。所以用户的需求可能是在Obsidian中管理或集成gitlab-ci.yml的相关内容。 接下来,考虑用户可能的实际需求。可能的情况是,用户希望方便地编辑、查看或管理gitlab-ci.yml文件,或者希望在笔记中引用这些配置,并保持更新。Obsidian支持Markdown和代码块,所以建议用户将配置文件以代码块形式保存在笔记中,便于查看和编辑。同时,Obsidian的插件系统可能提供相关支持,比如Git插件可以同步更改到Git仓库,而GitLab CI会自动检测仓库中的.gitlab-ci.yml文件。 另外,用户可能希望实现自动化集成,比如在笔记更新后触发CI流程。这需要结合Git版本控制,通过提交更改到GitLab仓库,由GitLab CI自动执行。因此,指导用户如何配置Obsidian的Git插件,设置自动提交或手动提交,并确保.gitlab-ci.yml文件位于仓库根目录。 还需要考虑用户可能遇到的问题,比如如何验证配置是否正确,或者如何查看CI执行结果。建议用户在GitLabCI/CD设置中检查流水线状态,并确保配置文件语法正确。 最后,生成相关问题时要围绕用户可能进步的需求,比如语法高亮、自动化触发方法、调试技巧、结合其他工具的使用,以及版本控制的最佳实践。确保回答结构清晰,分步骤说明配置方法,并引用相关参考资料帮助用户解决问题。</think>### Obsidian与GitLab CI集成方法 在Obsidian中使用GitLab CI配置文件(.gitlab-ci.yml)主要涉及三个层面的操作: 1. **配置文件管理** - 在Obsidian库中创建`.gitlab-ci.yml`文件(建议放在Vault根目录) - 使用代码块语法进行文档记录: ```yaml # 示例GitLab CI配置 stages: - build - test build_job: stage: build script: - echo "Building project..." - mvn package ``` 2. **Git集成配置** - 安装Obsidian Git插件[^1] - 配置.gitignore文件排除临时文件 ```gitignore # Obsidian自动生成文件 .obsidian/ .trash/ ``` 3. **CI/CD流程触发** 1. 通过Git插件提交代码到GitLab仓库 2. GitLab自动检测仓库中的.gitlab-ci.yml 3. 流水线执行结果可在GitLab界面查看 $$git \ push \ origin \ main \ --allow-unrelated-histories$$ # 首次同步可能需要此参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

问白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值