Jenkins CD VM部署实践 01 准备工作项目标准化

网友投稿 252 2022-11-02


Jenkins CD VM部署实践 01 准备工作项目标准化

0. 准备工作项目标准化

公司里面要使用流水线要做持续集成CI/CD的项目越来越多,这对流水线的设计和开发有不同的要求。我们经常听到用户的反馈:

各种不同语言的技术栈, 如何使流水线适配呢? 从不同技术栈维护一套流水线模版,到我们使用共享库进行统一的管理和维护。对于不同的项目,大家管理代码的方式也不同。可能还有一部分用户在使用Svn等不同的版本控制系统。不同的项目,开发模式也不太一样, 编译构建工具不同,发布的方式也有不同的地方...

等等,不止上面的问题。所以在做流水线的使用应该提前把项目团队的规范定义好, 这样后期项目改造后可以直接集成CI/CD流水线。更加便捷。

跟进项目团队信息

信息项

描述

业务简称/编号

anyops

开发模式

特性分支开发(开发一些特性和新的需求的时候,先根据需求创建特性分支,根据这个特性分支去开发,对特性分支验证了之后,就合并到版本分支),版本分支发布(版本分支经过一系列的测试,最终以版本分支进行上线,比如uat环境或者stage环境),主干分支作为最新代码(最终发布成功了通过版本分支合并到主干分支)


项目类型与构建方式


前端: vue项目, npm打包, 制品目录 dist

后端:springboot项目, maven打包, 制品目录 target


发布主机环境(vm)


LB: 192.168.1.200

Server: 192.168.1.230~192.168.1.232

制定项目CI/CD规范

通过上面的信息,我们采用如下规范:

工具链


GitLab 代码库

仓库组: anyops

项目仓库后端 anyops-devops-service 前端 anyops-devops-ui

Jenkins作业

文件夹: anyops


作业命名: 后端 anyops-devops-service 前端 anyops-devops-ui


CI构建规范

前端项目采用npm打包后统一放到dist目录下, 静态文件以tgz打包。

后端项目采用maven打包后统一放到target目录下,以jar包。




Sonar代码报告


前端项目: anyops/anyops-devops-ui 后端项目: anyops/anyops-devops-service

项目团队可以使用anyops命名的自定义质量规则和质量阈。




Nexus制品库目录

com/anyops/anyops-devops-service/version/anyops-devops-service-version.jar(第一层目录可以写公司名称,自定义即可,这里是com。第二层是业务的名称,第三层是应用的名称,然后是版本具体的哪个包了)

com/anyops/anyops-devops-ui/version/anyops-devops-ui-version.jar

版本: 分割release分支获取版本号

发布规范

用户输入版本,下载制品库,使用脚本启动服务。

后面把这个业务涉及到的流水线全部放到这个文件夹里面去管理,在该业务下面建立两条流水线。

GitLab代码库:

创建anyops组

然后将两个项目拿过来

或者新建一个项目

[root@jenkins-master devops-maven-service-master]# git initInitialized empty Git repository in /root/devops-maven-service-master/.git/[root@jenkins-master devops-maven-service-master]# git remote add origin devops-maven-service-master]# git add .[root@jenkins-master devops-maven-service-master]# git commit -m "Initial commit"[master (root-commit) 34a090a] Initial commit 11 files changed, 816 insertions(+) create mode 100644 .gitignore create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java create mode 100644 .mvn/wrapper/maven-wrapper.jar create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 Jenkinsfile create mode 100755 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/example/demo/DemoApplication.java create mode 100644 src/main/resources/application.properties create mode 100644 src/test/java/com/example/demo/DemoApplicationTests.java[root@jenkins-master devops-maven-service-master]# git push -u origin masterUsername for 'rootPassword for 'Counting objects: 27, done.Compressing objects: 100% (17/17), done.Writing objects: 100% (27/27), 53.44 KiB | 0 bytes/s, done.Total 27 (delta 0), reused 0 (delta 0)To * [new branch] master -> masterBranch master set up to track remote branch master from origin.

同理前端的项目也是一样,反正就两个项目,一个前端的anyops-devops-ui项目,一个后端的anyops-devops-service

上面就是组的创建和命名规范。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mybatis 事务回滚配置操作
下一篇:Kubernetes SecurityContext 安全上下文之 runAsUser以及阻止容器使用 root 户运行
相关文章

 发表评论

暂时没有评论,来抢沙发吧~