基于K8S的持续集成部署5之标准应用的制定

众所周知,市面上成熟的流水线,一定都是符合标准的。那什么叫做符合标准呢?通俗一点来说,就是它符合构建部署流水线的标准。那么随便一个应用可以上这个流水线吗?当然可以。应用杂、乱、不符合、不标准,那我们就改造它。

一、应用的改造工程

如果要改造一个现有的应用,首先,这里理应该有个例子。比如这个"eladmin-plus"项目,这是我从gitee随便找的一个SpringBoot项目

# 执行这条命令需要安装git
git clone https://gitee.com/rayson517/eladmin-plus.git
  • 首先,我们执行上面的命令,将这个项目克隆到本地

  • 通过查看开源文档,我们得知,eladmin-plus的启动项目是eladmin-system

  • 如图所示,查看eladmin-system项目下的pom文件中的打包配置

为了使打包出来的jar包一定是符合我们预期的包名,我们需要把它的包名给它掐死在出生点,那么我们需要怎么做呢?如下图所示,我们只需要增加一个finaName的属性即可。

现在,一个勉强符合预期的应用,就已经改造完毕了。

二、随手写一个ci工具

使用这个ci工具需要jdk和maven环境的支持,如果没有安装jdk和maven,会报错的你就放心吧

很快啊,这个工具我就写出来了,测试运行也很完美啊(如下图所示)

命令行参数如下所示:

./ci-tool -language=java -appname=eladmin-system -output=eladmin-system/target/eladmin-system.jar -branch=master -env=dev

参数介绍与解释:

language: 这个项目使用的语言,目前这个1.0.0,仅支持maven管理下的springboot项目。必传
appname: 要构建的模块名称,这个后面打算用来做k8s的namespace,所以最好就用它的模块名称。必传
output: jar包输出的文件所在根目录的相对路径,构建镜像的时候,会用上。必传
branch: 要发布的分支名称,在eladmin-plus这个项目里,由于不是自己的项目,所以可用分支只有一个master分支。必传
env: 这个是用来区分不同环境的一个标记,比如env=daily,我在脚本里面,还是k8s yaml里面,我就知道现在部署的是哪个环境,好去拉取哪个环境的配置。必传

工具下载:

# linux
https://www.odboy.cn/upload/ci-tool_linux64

# mac
https://www.odboy.cn/upload/ci-tool_darwin64

以下小节,下一章再说吧,cd内容有点多

三、随手写一个cd工具

四、合体:cicd工具链