first commit
This commit is contained in:
commit
ba848e218d
1001 changed files with 152333 additions and 0 deletions
32
CICD/PipeLine.md
Normal file
32
CICD/PipeLine.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
```
|
||||
pipeline {
|
||||
agent any
|
||||
environment { # 环境变量
|
||||
xxx
|
||||
}
|
||||
|
||||
stages { # 任务集合
|
||||
stage("获取代码") {
|
||||
steps {
|
||||
echo "get code"
|
||||
}
|
||||
}
|
||||
|
||||
stage("质检") {
|
||||
steps {
|
||||
echo "build ok"
|
||||
}
|
||||
}
|
||||
|
||||
stage("部署") {
|
||||
steps {
|
||||
echo "部署"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post { # 发送通知
|
||||
xxx
|
||||
}
|
||||
}
|
||||
```
|
28
CICD/SonarQube.md
Normal file
28
CICD/SonarQube.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
```
|
||||
安装数据库
|
||||
普通用户启动sonar
|
||||
配置sonar,配置数据库的信息(用户名密码,jdbc)
|
||||
启动sonar(端口解析)
|
||||
登录用户名密码为admin
|
||||
sonar生成token令牌(用于认证登录)
|
||||
|
||||
安装插件,在administrator中搜索chinese,安装汉化插件,重启
|
||||
安装css,js等插件
|
||||
|
||||
插件安装位置为extensions/plugins中
|
||||
|
||||
客户端需要sonar-scanner工具,用于扫描
|
||||
sonar-scanner -Dsonar.login=以上生成的token -Dsonar.host.url=服务器端链接
|
||||
|
||||
mvn扫描java代码
|
||||
mvn sonar:sonar
|
||||
也可以时使用sonar-scanner扫描
|
||||
|
||||
|
||||
jenkins需要安装sonarqube scanner for jenkins的插件,配置sonarQube时,添加secretv text时,需要把token填入
|
||||
|
||||
jenkins中配置
|
||||
sonar.projectName=${JOB_NAME}
|
||||
sonar.projectKey=java
|
||||
sonar.sources=.
|
||||
```
|
14
CICD/gitLab.md
Normal file
14
CICD/gitLab.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
安装gitlab
|
||||
修改配置文件
|
||||
执行gitlab-ctl reconfigure,重新加载配置
|
||||
|
||||
git reset -hard HEAD^ # 回滚到上一个版本(本地)
|
||||
git log # 查看版本号
|
||||
git reset -hard commitID # 回滚到指定版本
|
||||
|
||||
git checkout branches_name # 切换到branches_name分支
|
||||
git merge dev # 把dev分支合并到branches_name分支
|
||||
git remote update origin --prune # 更新远程分支列表
|
||||
git branch -a # 查看所有分支
|
||||
git push origin --delete Chapater6 # 删除远程分支Chapater6
|
||||
git branch -d Chapater6 # 删除本地分支 Chapater6
|
18
CICD/代码检测失败终止构建.md
Normal file
18
CICD/代码检测失败终止构建.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
```
|
||||
stage("代码检查") {
|
||||
steps {
|
||||
withSonarQubeEnv("SonarQube") { ## 这里的SonarQube与jenkins中配置的sonarQube server的名字一致
|
||||
sh "/usr/local/sonar-scanner/bin/sonar-scanner -Dsonar.host.url=xxx -Dsonar.sources=. -Dsonar.projectKey=${JOB_NAME}"
|
||||
}
|
||||
|
||||
script {
|
||||
timeout(1) {
|
||||
def qg = waitForQualityGate()
|
||||
if (qg.status != 'OK') {
|
||||
error "未通过代码检查,请及时修改! failure: ${qg.status}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
53
CICD/相关知识.md
Normal file
53
CICD/相关知识.md
Normal file
|
@ -0,0 +1,53 @@
|
|||
CI:持续集成
|
||||
CD:持续交付,持续部署
|
||||
|
||||
## 持续集成
|
||||
```
|
||||
持续集成可以使问题尽早暴露,从而也降低了解决问题的难度,正如老马所说,持续集成无法消除bug,但却能大大降低修复的难度和时间。
|
||||
|
||||
如何做到持续集成?
|
||||
首先,持续集成需要:
|
||||
|
||||
1. 单一的代码仓库,团队成员都像该仓库提交代码;
|
||||
|
||||
2. 自动化构建且构建过程需要包含自动化测试;
|
||||
|
||||
3. 有单独的集成机器用于构建;
|
||||
|
||||
4. 保证构建速度不要太慢(曾经有一个项目构建需要20分钟,就会很痛苦);
|
||||
|
||||
5. 在类产品环境进行测试;
|
||||
|
||||
6. 能够方便获取最新的可执行程序;
|
||||
|
||||
7. 可视化,大家都能看到构建过程及结果;
|
||||
|
||||
8. 自动化部署。
|
||||
|
||||
其次,我们通过以下步骤进行持续集成:
|
||||
|
||||
1. 程序员将代码下载到本地,并在完成修改后提交代码;
|
||||
|
||||
2. CI服务器监测代码库,并在有提交时自动触发;
|
||||
|
||||
3. CI服务器对代码进行构建,运行单元测试和集成测试;
|
||||
|
||||
4. CI服务器发布可部署的artefact用于后续测试,并加上本次构建版本的标签。
|
||||
|
||||
5. CI服务器通知团队构建成功或者失败;失败发生时团队需要尽快修复,以免耽搁后续的持续集成过程,因为失败时处于持续集成的暂停阶段。
|
||||
|
||||
最后,需要就团队责任达成共识:
|
||||
|
||||
1. 频繁提交;
|
||||
|
||||
2. 提交之前确保测试通过;
|
||||
|
||||
3. 不在持续集成失败时提交代码;
|
||||
|
||||
4. 提交代码后保证持续集成成功,不然不准回家
|
||||
|
||||
```
|
||||
## 持续交付
|
||||
```
|
||||
持续交付是持续集成的扩展,指的是将通过自动化测试的软件部署到产品环境。持续交付的本质是把每个构建成功的应用更新交付给用户使用。在持续交付的世界里,我们对完成的定义不是测试完成,而是交付到客户手中。这里需要注意的是,CD代表持续交付(Continuous Delivery)而不是持续部署(Continuous Deploy),因为部署也包括部署到测试环境,而持续交付代表的是功能的上线,交付给用户使用
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue