任务配置
Maven构建 插件使用指南
使用Apache Maven构建Java项目。
配置方式
方式一:不配置打包上传(只是简单的编译代码,review代码,配置到Change流水线上)
方式二:配置打包上传(需要做发布、部署的操作)
查看制品库irepo页面地址:https://console.bce.baidu.com/irepo/
查看执行结果:
下载编译日志,查看编译信息
Gradle构建 插件使用指南
使用Gradle构建Java项目。
配置方式
方式一:不配置打包上传(只是简单的编译代码,review代码,配置到Change流水线上)
方式二:配置打包上传(需要做发布、部署的操作)
查看执行结果(执行成功):
发布 插件使用指南
简介
发布生成四位版本号供下游部署平台使用,发布依赖编译或构建插件。
配置方式
发布插件一定要配置到编译插件后面
执行过程
执行结果(成功案例)
执行取消发布
查看发布任务详情
Jenkins 插件用户指南
Jenkins 插件 iPipe-Agent
iPipe-Agent 是一个用来与 iPipe 对接的插件。您只需简单的操作,即可享受 iPipe 与 Jenkins 带来的持续交付可视化和自动化的便捷。
插件.hpi文件下载地址
下载链接: https://pan.baidu.com/s/12dbnnOmyzLaT1fOPku-qPA
提取密码: 96wl
安装Jenkins步骤:
Jenkins支持外网机器部署:
- 登录上述相应的机器,下载安装jdk,建议1.8, 下载链接:https://pan.baidu.com/s/1aDE-OxxygXkEmnFCJoYGKg 提取码:zmut
解压以后在/etc/profile文件末尾处配置环境变量
比如我的JDK解压到/home/local目录下
export PATH=/home/local/jdk1.8.0_192/bin:$PATH
- 下载2.19版本Jenkins.war 点击下载: 链接:https://pan.baidu.com/s/1KJP2vdHLI9BIY_6rtFDIVw 提取码:7tjm
- 将下载好的jenkins.war上传到保定BCC机器上或者其他外网机器。
- 执行命令:nohup java -Dfile.encoding=utf-8 -Dhudson.model.ParametersAction.keepUndefinedParameters=true -jar jenkins.war --httpPort=8888 & (8888为启动端口号,可以根据实际情况更改)
- 会看到当前目录下生成一个nohup.out文件
- jenkins配置、构建等数据,默认保存到了~/.jenkins目录下,建议定期备份
插件安装
Jenkins版本要求:测试于Jenkins版本2.19上完成,建议使用该版本。其他Jenkins版本
1.x理论上兼容,可以试用。
方式一 使用 jenkins 管理页面的插件安装(推荐使用)
-
打开 jenkins 的系统管理页面(BCC公网IP+启动端口号)
- 进入插件管理页面
- 选择高级
- 在页面下方可以看到上传插件,选择 iPipe-Agent 插件 hpi 文件上传即可
注意:自动安装的插件有些会有安装失败的情况,应是有些版本不支持,可以在此链接: http://updates.jenkins-ci.org/download/plugins 下载版本的.hpi文件即可(Ctrl+F搜索需要的替换的插件名称) 以publish-over-ssh插件为例:
方式二
将 iPipe-Agent 插件 hpi 文件复制到 /.jenkins/plugins 目录下,重启 jenkins 即可完成插件安装
注册 jenkins 到 iPipe
可注册多个jenkins
- 安装 iPipe-Agent 插件后便可在 jenkins 的系统管理页面看到 iPipe-Agent 的管理入口
- 填入注册信息,保存即可注册完成
3.将“防止跨站点请求伪造”选项去掉勾选
创建一个 Job
- 注册好 jenkins 之后,即可创建 job
- 在配置 job 时可以填入项目标识列表,以半角逗号分隔;配置以后,则在iPipe上流水线中可以使用该job。
之后在框里写个echo "test"就可以保存啦!
iPipe流水线上配置Jenkins Job
完成上面的步骤后即可在 iPipe 中配置刚刚新建的 Jenkins Job 到流水线上
- 首先进入 iPipe 流水线首页, 查看右上角,可以选择创建一条新的流水线,也可以在原有的流水线配置上更改配置保存后重新构建即可,流水线配置详情请参考流水线配置指南,这里只提供示例,如下图:
- 选择添加 Stage、job
3.查看在iPipe上执行的效果:
4.在Jenkins构建页面查看触发的任务构建日志,下图表示执行成功:
参数传递
iPipe-Agent 插件实现了上下游 Job 之间的参数传递功能
- 在 Jenkins 中创建 Job 时可以选择参数输出文件,并将想要传递的参数输出到上面指定的文件,一行一个键值对,格式为$VAR_NAME=$VAR_VALUE
- 传递的参数可以直接在下游 Job 中使用,使用方法为$加上参数名
- 到 iPipe 中配置好上下游 Job,即可实现参数传递
Jenkins上游配置:
Jenkins下游配置(手动触发或自动触发都可以):
- 可以在构建日志中看到,下游的 Job 成功接受参数:
- Job 的输出参数和接受参数也可在详情页中查看
上游参数: 下游参数:
部署BCC机器用户指南
BCCDeploy简介
BCCDeploy插件可以将自己的项目打包部署到已购买的BCC云服务器上。
服务器安装部署客户端步骤
登录百度智能云BCC服务器(公网IP)并执行以下命令:
首先确认BCC的操作系统是否为Centos, 执行命令:cat /etc/redhat-release root账号下执行以下命令: mkdir -p /home/work (创建客户端安装目录) cd /home/work (进入客户端安装目录) wget http://sugarheap.bid.local.baidubce.com:15505/download?fileName=salt-64.tar.gz -O salt.tar.gz (下载) tar -xzvf ./salt.tar.gz (解压压缩文件) sh ./bin/control start (运行客户端) sh ./bin/control status (查看客户端状态,显示Running就是正常的,参考下图执行的命令)
“BCCDeploy”插件在iPipe上配置(Demo)
Demo的环境准备:
-
登录BCC机器,下载安装jdk,建议1.8, 下载链接:https://pan.baidu.com/s/1aDE-OxxygXkEmnFCJoYGKg 提取码:zmut
解压以后在/etc/profile文件末尾处配置环境变量 比如我的JDK解压到/home/local目录下 export PATH=/home/local/jdk1.8.0_192/bin:$PATH
- BID Demo代码库的例子在此链接下载: 下载链接:https://pan.baidu.com/s/1On4IncSZlcQjcrA8cgZHLw 提取码:6jl1
“BCCDeploy”插件在ipipe上配置如下:
可配置在编译插件或发布插件后面,编译中配置的命令如下(BID部署的启动脚本需参考此命令,启动命令demo下面已经给出,下载即可):
在iPipe上配置如下:
"停止命令"和"启动命令"
下载链接:https://pan.baidu.com/s/17rxMf-Tr4uZyHyiIm0fpuQ 提取码:6ajd 将下载好的这三个.sh文件上传到BCC机器/home/work/下,并执行命令:
chmod +x start.sh
chmod +x startspring.sh
chmod +x stop.sh
名词解释:
任务名:任务名可自定义;
类型:通过下拉选框选择“BCCDeploy”;
执行账户:BCC机器上的操作用户,需与下载客户端的账户一致;
部署路径:代码库(项目)的部署的位置,会将编译产出的目录(.output/*.war)放到此目录下(此产出目录需参考编译命令,Demo已给出示例);
启动命令:启动程序的命令脚本,需要自己编写符合自己项目的shell脚本,温馨提示:此demo中的shell脚本中启动命令用的是java -jar命令启动output目录下的war包,如图;
停止命令:停止程序命令脚本,需自己编写shell脚本,温馨提示:每次部署会先检查进程,然后kill掉,如图;
部署资源:指定需要部署到哪台BCC机器上,可多选,但需要在选择的BCC机器上部署agent;
其中,还有个选项就是自动检查验证和人工检查验证,
区别如下图:
回调接口需在代码里自己开发,返回格式如下:
比如:
后者是需要人工检查完成后,通过点击链接打开部署任务,在部署任务中手动点击“确认”按钮完成检查流程,如下图:
第一次执行BID任务会失败,而且BID页面任务列表中会没有数据,原因是没有对BID实例进行授权操作,这时候需要效率云主账号对BID实例进行授权操作,根据提示,点击“是”即可。
点确定以后,到iPipe流水线重新执行BID任务即可.
最后在BCC机器的/home/work目录下查看是否将发布产出部署上去:
查看在ipipe上执行结果
在浏览器上输入:公网IP:8080
iScan接入iPipe使用指南
简介
iPipe流水线配置iScan插件后,相应的流水线每次构建或执行都会自动触发扫描,及时发现代码问题,保证质量和开发效率。
iScan插件使用步骤
step1 进入流水线配置页面
step2 添加任务
step3 选择iScan扫描插件
step4 配置插件
step5 触发流水线执行扫描任务
step6 触发流水线执行结果(因配置的时候是选择的“存在高危缺陷时任务失败”,所以此时任务是成功的)
step7 查看执行详情
配置说明
基础配置
任务名
流水线中iScan扫描任务的名字
语言类型
要扫描的语言,iPipe系统会分析代码库的语言构成自动推荐扫描语言,如果要扫描的语言与推荐的不相符,请手动选择要扫描的语言
扫描工具
上面指定的语言所支持的扫描工具,具体见下方的表格。
如果要一次扫描任务配置多个工具同时扫描,请参考:多工具并行扫描
编译命令 Object-C语言项目,Xcode创建的工程使用xcodebuild命令行编译;
android语言选用infer工具时,gradle构建的工程选用./gradlew命令行编译;
编译命令格式:commands1&&commands2,
其中编译前的准备环境命令以及clean命令要写在最前面即commands1,各命令间用英文分号隔开; 编译命令为commands2;
commands1和commands2命令都是相对于代码根目录的,如果需要进入到指定目录下执行命令,比如obeject-c项目要进入根目录下的app文件夹执行commands1与commands2,命令如下: cd app;xcodebuild -scheme XX -workspace XX.xcworkspace -configuration Release clean && cd app;xcodebuild -scheme XX -workspace XX.xcworkspace -configuration Release build
语言 | 扫描工具 | 默认推荐工具 |
---|---|---|
Java | BCA-Java | 是 |
Java | FindBugs | 否 |
Java | PMD | 否 |
Java | Fox | 否 |
C/C++ | BCA-Cpp | 是 |
C/C++ | Clang Static Analyzer | 否 |
Android | BCA-Java | 是 |
Android | Findbugs | 否 |
Android | Godeyes | 否 |
Android | Fox | 否 |
Android | Android Lint | |
PHP | PHPMD | 是 |
PHP | RIPS | 否 |
PHP | SonarEngine | 否 |
PHP | PHPCheckstyle | 否 |
Python | Pylint | 是 |
Go | Govet | 是 |
Go | Golint | 否 |
JavaScript | ESLint | 是 |
Object-C | Infer | 是 |
Object-C | oclint | 否 |
选择infer,clang,oclint、findbugs这个需要编译的工具时,下方会出现编译命令元素,用于指定编译代码所需的命令
扫描等级
用于控制扫描的范围,目前支持扫描全部缺陷,只扫描中高级缺陷,只扫描高级缺陷三种选择,默认为只扫描中高级缺陷
扫描红线
用于控制出现何种缺陷的时候流水线任务,目前支持忽略所有漏洞,存在高级漏洞时失败,存在中高级漏洞时失败,存在所有漏洞时扫描失败
高级配置
过滤
选择只扫描时:iScan扫描任务会只扫描编辑框内指定的若干个路径,(不用填写代码库三级路径,从后面的路径填写即可,比如完整路径为i6xfauqk/lihangtest/icodeDemo/src,若只想扫描src,填写src即可)
选择不扫描时:iScan扫描任务会不扫描编辑框内指定的若干路径, 如果编辑框不填写内容,则不会进行过滤操作
Docker构建使用指南
Docker构建是指通过流水线构建和制品管理,将编译之后的服务通过打docker镜像推送至百度容器引擎CCE上管理。
- Docker构建参考Demo可在此链接下载: 链接:https://pan.baidu.com/s/1Wkwdp7sZ0y0uYMuuIdQUKw 提取码:w1zb
制品管理iRepo配置制品
回到制品库列表页面查看是否创建成功。
在持续集成流水线iPipe上配置
1.选择Maven编译或Gradle编译插件,这里以Maven编译插件为例
2.配置详情
注意:
如果出现因"镜像Tag"重复导致构建失败的问题,可以在配置任务的时候,“镜像Tag”使用系统变量参数,如填写:${AGILE_PIPELINE_BUILD_ID}
3.点击保存触发构建即可
4.查看构建结果
查看镜像上传结果
查看制品库镜像详情页面是否真的上传成功。