java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~