天天看点

使用 Tekton 构建自动化流水线系统环境流程规划获取源码部署流程查看流水线状态参考文档

工作流的阶段划分了以下几个阶段:<code>Clone 代码</code>-&gt;<code>单元测试</code>-&gt;<code>Golang 编译打包</code>-&gt;<code>Docker 镜像构建/推送</code>-&gt;<code>Kubectl 部署服务</code>。

关于<code>Tekton</code>部署使用详见K8S 部署 Tekton Trigger 的使用。

在<code>Tekton</code>中我们就可以将这些阶段直接转换成<code>Task</code>任务,首先,我们先获取测试用的代码仓库:

所有的部署流程代码文件,我已整理好:

说明: 一般来说我们只需要提供<code>output</code>这个个用于持久化代码的 workspace,然后还包括<code>url</code>和<code>revision</code>这两个参数,其他使用默认的即可。

单元测试阶段比较简单,正常来说也是只是单纯执行一个测试命令即可,我们这里没有真正执行单元测试,所以简单测试下即可,apply 一个如下所示的 Task:

创建如下所的 Task 任务,首先需要通过定义一个 workspace 把 clone 任务里面的代码关联过来:

说明:

<code>docker build --no-cache -f ./Dockerfile -t $(params.image) . --network=host</code>后面加上 network ,否则镜像会打包失败,报错如下:

说明:<code>deploy</code>和<code>rollback</code>两部分我后面将使用<code>Argo CD</code>做 CD ,所以这里仅是简单介绍。

使用<code>tekton CLI</code>工具,安装详见Tekton CLI。

在 Dashboard 上也可以看到可以流水线可以正常执行,由于部署成功了,所以 rollback 回滚的任务也就被忽略了:

使用 Tekton 构建自动化流水线系统环境流程规划获取源码部署流程查看流水线状态参考文档

Tekton流水