Skip to content
Published:

一次 gitlab CICD config 的实践记录

小菜鸡来写 gitlab-ci 了

Table of contents

Open Table of contents

CI / CD 方法论简介

软件开发的连续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。

GitLab CI / CD 是 GitLab 内置的功能强大的工具,它使您可以将所有连续方法(连续集成,交付和部署)应用于软件,而无需第三方应用程序或集成。

一些常用的关键字

关键词描述
script运行程序执行的 Shell 脚本。
after_script覆盖作业后执行的一组命令。
allow_failure允许作业失败。失败的作业不会影响提交状态。
artifacts成功时附加到作业的文件和目录列表。也可用:artifacts:pathsartifacts:excludeartifacts:expose_asartifacts:nameartifacts:untrackedartifacts:whenartifacts:expire_in,和artifacts:reports
before_script覆盖作业之前执行的一组命令。
cache在后续运行之间应缓存的文件列表。也可用:cache:pathscache:keycache:untrackedcache:when,和cache:policy
coverage给定作业的代码覆盖率设置。
dependencies通过提供要从中获取工件的作业列表,限制将哪些工件传递给特定作业。
environment作业部署到的环境的名称。也可用:environment:nameenvironment:urlenvironment:on_stopenvironment:auto_stop_in,和environment:action
except限制不创建作业的时间。也可用:except:refsexcept:kubernetesexcept:variables,和except:changes
extends该作业继承的配置条目。
image使用 Docker 映像 也可用:image:nameimage:entrypoint
include允许此作业包括外部 YAML 文件。也可用:include:localinclude:fileinclude:template,和include:remote
only限制创建作业的时间。也可用:only:refsonly:kubernetesonly:variables,和only:changes
parallel多少个作业实例应并行运行。
release指示运行程序生成Release对象。
retry发生故障时可以自动重试作业的时间和次数。
rules评估和确定作业的所选属性以及是否创建作业的条件列表。不能与only/一起使用except
stage定义一个作业阶段(默认值:)test
tags用于选择 runner 的标签列表。
trigger定义下游管道触发器。
variables在作业级别上定义作业变量。
when什么时候开始工作。也可用:when:manualwhen:delayed

config

首先,从基本元素 job 开始

这个 image 在我的理解下是 之后的每个作业运行的环境,后续作业中没有定义 image 的,以此 image 为准

定义项目推送的镜像

before_script:
  - IMAGE_TAG=${IMAGE}:${CI_COMMIT_SHORT_SHA}

例如:

stages: -build - test - dockerize - deploy;

至此 build 作业编写完毕,不指定特定分支,因此任何分支有提交代码都会执行这个作业

至此 dockerize 作业编写完毕

以上就是 gitlab-ci.yml 的学习以及实践,部署预发布版本和生产版本进 k8s 的,等我看懂了deployment.yaml再来更新