.gitlab-ci.yml文件解读

之前一直对gitlab-ci.yml 了解不够。完全看不明白,现在对文件中的内容做个解读。也当作一个笔记。

基础知识

1. yml 语法说明

这里详细的可以搜索下阮一峰老师的文章。这里只列出gitlab-ci.yml中出现的内容

& 锚点和 * 别名,可以用来引用:

defaults: &defaults
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  <<: *defaults

test:
  database: myapp_test
  <<: *defaults

相当于:

defaults:
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  adapter:  postgres
  host:     localhost

test:
  database: myapp_test
  adapter:  postgres
  host:     localhost

& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。

其他语法自行查找

2. GitLab Runner

GitLab Runner(为了叙述方便,以下简称Runner) 是与GitLab的CI/CD执行环境,是GitLab的一个工具包。
简单来说吧, Runner就是自动化部署任务的执行环境。你编写的一条自动化部署的流水线,包含了安装,测试,部署三个任务,这三个任务在哪个环境下执行那,就是在Runner中。没有Runner,GitLab CI/CD就没办法远行。

要想做GitLab CI/CD,首先要有一个正常的Runner

现有环境和流程展示

GitLab Runner

Pipeline

上图可以看到流水线有三个阶段(stage):build/push/deploy

每个阶段有一个job

,gitlab-ci.yml 文件

这里只保留一个阶段做解读


## 自定义了一个阶段
stages:
  - build

## build 阶段
dev-build:
  # 当前阶段 和上面定义的对应
  stage: build
  # 任务要执行的shell脚本内容,内容会被runner执行
  script:
    - gradle clean
    - gradle --build-cache assemble
    - cd build/libs
  # 将流水线过程中的一些文件,文件夹,打包压缩,提供一个外链供人下载,另外还能在后续的job中缓存。
  # paths 是用来指定将那些文件,目录放入制品中,也可以使用exclude关键词,将那些目录,文件排除,支持正则表达式。
  # expire_in 过期时间默认30天 这里是1小时
  artifacts:
    paths:
      - build/libs
    expire_in: 1h
  only:
	# 只有dev开始的tag才会执行
    variables:
      - $CI_COMMIT_TAG =~ /dev-/
  tags:
    # runner 的标签,可以查看上面的图片,这里指定用哪个runner
    - test

关于关键字的作用,可自行搜索。知道常用的即可。

posted @ 2021-06-10 15:47  Kevin_zheng  阅读(662)  评论(0编辑  收藏  举报