Skip to content

Commit 5a60e33

Browse files
authored
Merge pull request #1153 from zhuay-a/patch-1
完善Jenkins文档
2 parents 39794b4 + 772221a commit 5a60e33

2 files changed

Lines changed: 73 additions & 15 deletions

File tree

doc/en/guide/插件/Jenkins_Plugin.md

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
### 获取Jenkins插件
88
Jenkins插件有以下两种获取方式:
99

10-
**方式一**:在 TCA 源码的`plugin/jenkins_plugin`目录下,执行命令`mvm package -DskipTests`,打包完成后进入target目录会看到`Jenkins_plugin.hpi` 的安装包。
10+
**方式一**:在 TCA 源码的`plugin/jenkins_plugin`目录下,执行命令`mvn package -DskipTests`,打包完成后进入target目录会看到`tca_jenkins_plugin.hpi` 的安装包。
1111

1212
**方式二**:从TCA release 安装包中,获取`jenkins_plugin.hpi`[https://github.com/Tencent/CodeAnalysis/releases](https://github.com/Tencent/CodeAnalysis/releases)
1313

14-
1514
### 在Jenkins安装插件
1615
在Jenkins中通过【Manage Plugin】-> 【Advanced】->【Deploy plugin】的方式选择 Jenkins_plugin.hpi文件上传安装,并重启Jenkins。
1716
![](../../../images/jenkins_manage_plugins.png)
@@ -20,6 +19,12 @@ Jenkins插件有以下两种获取方式:
2019
最终在【Installed】里搜索出【TCA】代表插件安装成功。
2120
![](../../../images/jenkins_installed_plugins.png)
2221

22+
### 完善启动客户端的环境
23+
在CodeAnalysis目录下执行代码
24+
```shell
25+
bash ./scripts/base/install_bin.sh
26+
```
27+
`client`目录下的`config.ini`文件中的`<Server IP地址>`替换为部署的开源版TCA的IP地址(可包含端口号)
2328

2429
## 使用插件
2530
### 在 TCA 创建团队和项目
@@ -35,24 +40,23 @@ Value:`GITPATH` Value:xxxx(路径不包含git)
3540
![](../../../images/jenkins_manage_jenkins.png)
3641
<img src="../../../images/jenkins_environment_vars.png" width = "400"/>
3742

38-
39-
### 创建一个构建任务,配置代码库信息
40-
进入Jenkins,通过【New Item】创建一个空白任务,在任务配置中【Source Code Management】配置待分析的代码库地址和凭证。
43+
### 配置 TCA 插件
44+
#### 方式一:可视化界面配置 TCA 插件
45+
创建一个构建任务,配置代码库信息,进入Jenkins,通过【New Item】创建一个空白任务,在任务配置中【Source Code Management】配置待分析的代码库地址和凭证。
4146
`Repository URL`: 填入远端仓库地址
4247
`Credentials`: 添加仓库的用户名和密码作为凭证,如果是公开仓库,可以不设置仓库凭证
4348

4449
<img src="../../../images/jenkins_new_item.png" width = "300"/>
4550

4651
![](../../../images/jenkins_git_config.png)
4752

48-
### 配置 TCA 插件
4953
在构建任务的【Build】中选择【TCA】插件并配置以下参数:
5054

51-
`CodeAnalysis`: 拉取代码所在的绝对路径
55+
`CodeAnalysis目录绝对路径`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/data/CodeAnalysis/)
5256
`团队ID`: 在 TCA 中创建的团队的标识ID,可在TCA【团队概览】中获取“团队唯一标识”
5357
`项目名称`: 在 TCA 中创建的项目的标识ID,可在TCA【项目概览】中获取“项目唯一标识”
5458
`Token`: 在 TCA 的【个人中心】->【个人令牌】中获取
55-
`分支名称`: 需要扫描的代码分析名称
59+
`分支名称`: 需要扫描的代码分支名称
5660
`语言类别`: 项目需要扫描的语言
5761
`分析方案模板ID`: 需要使用的分析方案模板ID,在分析方案模板的“基础属性”中获取,将根据此模板创建分析方案(选填)
5862
`分析方案名称`: 指定创建出来的分析方案的名称(选填)
@@ -63,6 +67,33 @@ Value:`GITPATH` Value:xxxx(路径不包含git)
6367

6468
![](../../../images/jenkins_tca_plugin_config.png)
6569

70+
#### 方式二:pipeline语法配置 TCA 插件
71+
在步骤中添加TCA插件参数配置语句,下面的配置语句可作为参考;注意:如果是release版本v1.11.0及之前的老版本(包含源代码构建生成和release获取)插件,语法参数略有差别,请参考[issue1150](https://github.com/Tencent/CodeAnalysis/issues/1150)
72+
```pipeline
73+
pipeline{
74+
agent any
75+
76+
stages{
77+
stage('Build'){
78+
steps{
79+
TCA(codeAnalysisPath: '/data/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
80+
}
81+
}
82+
}
83+
}
84+
85+
```
86+
`codeAnalysisPath`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/data/CodeAnalysis/)
87+
`teamId`:团队ID
88+
`projectName`: 项目名称
89+
`token`: 在 TCA 的【个人中心】->【个人令牌】中获取
90+
`branchName`: 需要扫描的代码分支名称
91+
`languageType`: 项目需要扫描的语言
92+
`refSchemeID`: 需要使用的分析方案模板ID,在分析方案模板的“基础属性”中获取,将根据此模板创建分析方案(选填)
93+
`scanPlan`: 指定创建出来的分析方案的名称(选填)
94+
`threshold`: 设置质量门禁值
95+
`total`: 是否全量扫描,填`ture`为全量扫描,不填或填`false`为增量扫描
96+
6697
### 启动构建并查看结果
6798
点击【Build Now】启动构建。
6899
进入构建任务,在【Console Output】中查看执行过程。
@@ -74,6 +105,8 @@ Value:`GITPATH` Value:xxxx(路径不包含git)
74105
## 设置质量门禁
75106
在上述 TCA 插件配置部分填写`质量门禁`参数,需要填写一个整数,即当前分支的扫描问题量大于该质量门禁值时,判断为不通过;否则为通过。完成后会将TCA结果状态(`success`|`failure`)输出到工作空间下的`tca_threshold.txt`文件中,供后续步骤判断和终止流水线。
76107

108+
### 可视化界面使用质量门禁
109+
77110
在TCA插件后增加shell命令步骤,输入以下脚本内容:
78111

79112
![](../../../images/jenkins_shell.png)
@@ -87,5 +120,30 @@ else
87120
exit 255
88121
fi
89122
```
90-
91123
当质量门禁不通过时,会终止流水线(退出码:255)。
124+
125+
### pipeline脚本使用质量门禁
126+
以下是pipeline脚本使用质量门禁进行相应操作的示例,你可以在if和else部分写入你想要运行的脚本
127+
128+
```pipeline
129+
pipeline{
130+
agent any
131+
132+
stages{
133+
stage('Build'){
134+
steps{
135+
TCA(codeAnalysisPath: '/data/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
136+
script{
137+
def tca_status = readFile('tca_threshold.txt')
138+
if (tca_status == "success") {
139+
echo ">> tca scan pass!"
140+
} else {
141+
echo ">> tca scan fail! exit code 255"
142+
error("TCA scan failed. Terminating pipeline.")
143+
}
144+
}
145+
}
146+
}
147+
}
148+
}
149+
```

doc/zh/guide/插件/Jenkins_Plugin.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Jenkins插件有以下两种获取方式:
2424
```shell
2525
bash ./scripts/base/install_bin.sh
2626
```
27-
`client`目录下的`config.ini`文件中的`<Server IP地址>`替换部署的开源版TCA的IP地址(可包含端口号)
27+
`client`目录下的`config.ini`文件中的`<Server IP地址>`替换为部署的开源版TCA的IP地址(可包含端口号)
2828

2929
## 使用插件
3030
### 在 TCA 创建团队和项目
@@ -52,7 +52,7 @@ Value:`GITPATH` Value:xxxx(路径不包含git)
5252

5353
在构建任务的【Build】中选择【TCA】插件并配置以下参数:
5454

55-
`CodeAnalysis目录绝对路径`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/User/CodeAnalysis)
55+
`CodeAnalysis目录绝对路径`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/data/CodeAnalysis/)
5656
`团队ID`: 在 TCA 中创建的团队的标识ID,可在TCA【团队概览】中获取“团队唯一标识”
5757
`项目名称`: 在 TCA 中创建的项目的标识ID,可在TCA【项目概览】中获取“项目唯一标识”
5858
`Token`: 在 TCA 的【个人中心】->【个人令牌】中获取
@@ -68,7 +68,7 @@ Value:`GITPATH` Value:xxxx(路径不包含git)
6868
![](../../../images/jenkins_tca_plugin_config.png)
6969

7070
#### 方式二:pipeline语法配置 TCA 插件
71-
在步骤中添加TCA插件参数配置语句,下面的配置语句可作为参考
71+
在步骤中添加TCA插件参数配置语句,下面的配置语句可作为参考;注意:如果是release版本v1.11.0及之前的老版本(包含源代码构建生成和release获取)插件,语法参数略有差别,请参考[issue1150](https://github.com/Tencent/CodeAnalysis/issues/1150)
7272

7373
```pipeline
7474
pipeline{
@@ -77,14 +77,14 @@ pipeline{
7777
stages{
7878
stage('Build'){
7979
steps{
80-
TCA_Builder(codeAnalysisPath: '/zhuay/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
80+
TCA(codeAnalysisPath: '/data/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
8181
}
8282
}
8383
}
8484
}
8585
8686
```
87-
`codeAnalysisPath`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/User/CodeAnalysis)
87+
`codeAnalysisPath`: 拉取到本地的CodeAnalysis开源仓库目录的绝对路径(例如:/data/CodeAnalysis/)
8888
`teamId`:团队ID
8989
`projectName`: 项目名称
9090
`token`: 在 TCA 的【个人中心】->【个人令牌】中获取
@@ -133,7 +133,7 @@ pipeline{
133133
stages{
134134
stage('Build'){
135135
steps{
136-
TCA_Builder(codeAnalysisPath: '/zhuay/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
136+
TCA(codeAnalysisPath: '/data/CodeAnalysis/', teamId: 'xxxx', projectName: 'demo', token: 'xxxxxxxxxxxx', branchName: 'master', languageType: 'Java', refSchemeID: '1', scanPlan: 'model', threshold: '90', total:true)
137137
script{
138138
def tca_status = readFile('tca_threshold.txt')
139139
if (tca_status == "success") {

0 commit comments

Comments
 (0)