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 init
Initialized empty Git repository in /root/devops-maven-service-master/.git/
[root@jenkins-master devops-maven-service-master]# git remote add origin http://139.198.170.122:81/anyops/anyops-devops-service.git
[root@jenkins-master 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 master
Username for 'http://139.198.170.122:81': root
Password for 'http://root@139.198.170.122:81':
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 http://139.198.170.122:81/anyops/anyops-devops-service.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
同理前端的项目也是一样,反正就两个项目,一个前端的anyops-devops-ui项目,一个后端的anyops-devops-service
上面就是组的创建和命名规范。
相关文章
- 从零学习Jenkins部署SpringBoot项目
- CentOS7安装Jenkins教程
- CICD之Jenkins使用
- Jenkins自动构建部署项目到远程服务器上
- Jenkins学习三:介绍一些Jenkins的常用功能
- docker中Jenkins安装allure和使用,bash: allure: command not found
- jenkins自定义构建参数_jenkins怎么构建项目
- Jenkins下载_windows安装jenkins
- Jenkins+Docker+SpringCloud微服务持续集成(下)
- 4.Jenkins进阶之分布式架构环境配置
- [第11期] Jenkins-使用共享库对Pipeline扩展
- Jenkins发布项目[项目已经配置完成的情况下]
- 软件测试|Jenkins创建Pipeline
- Ubuntu 更新Jenkins到最新2.361.4版
- Jenkins 自由风格项目Freestyle project和流水线pipeline解释
- Jenkins安全警报:新的安全漏洞可允许代码执行攻击
- Jenkins + Docker 一键自动化部署 Java Spring Boot 应用最简流程
- 阿里出品!SpringBoot应用自动化部署神器,IDEA版Jenkins?
- linux环境下搭建jenkins实现自动部署详解程序员
- jenkins视图
- jenkins执行代码扫描
- 如何安装Jenkins在Linux系统中(linux安装jenkins)