first commit

This commit is contained in:
iProbe 2022-10-18 16:59:37 +08:00
commit ba848e218d
1001 changed files with 152333 additions and 0 deletions

32
CICD/PipeLine.md Normal file
View 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
View file

@ -0,0 +1,28 @@
```
安装数据库
普通用户启动sonar
配置sonar配置数据库的信息用户名密码jdbc
启动sonar端口解析
登录用户名密码为admin
sonar生成token令牌用于认证登录
安装插件在administrator中搜索chinese安装汉化插件重启
安装cssjs等插件
插件安装位置为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
View 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

View 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
View 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因为部署也包括部署到测试环境而持续交付代表的是功能的上线交付给用户使用
```