源码迁移
stage('source-code-migration') { steps { echo '====== 源码迁移 ======' sh 'if [ ! -d "./report_dir" ]; then mkdir -p ./report_dir; fi /usr/bin/rm -rf ./report_dir/*.html' script{ def SRC_MIG_STATUS_CODE = sh(returnStatus: true, script: 'devkit porting src-mig -i ../src/wtdbg2 -c make -r html -o ./report_dir') switch(SRC_MIG_STATUS_CODE) { case 0: currentBuild.result = 'SUCCESS' echo '【源码迁移】--> 无扫描建议 <--' break case 1: currentBuild.result = 'UNSTABLE' echo '【源码迁移】--> 扫描结果仅存在建议项 <--' break case 5: currentBuild.result = 'FAILURE' echo '【源码迁移】--> 扫描结果存在必须修改项 <--' break case 3: currentBuild.result = 'ABORTED' echo '【源码迁移】--> 扫描结果超时 <--' break case 4: currentBuild.result = 'ABORTED' echo '【源码迁移】--> 扫描命令错误 <--' break default: currentBuild.result = 'ABORTED' echo '【源码迁移】--> 异常终止{Ctrl + C | Ctrl + Z} <--' break } } sh 'mv ./report_dir/src-mig*.html ./report_dir/SourceCodeScanningReport.html' } post { always { publishHTML(target: [allowMissing: false, alwaysLinkToLastBuild: false, keepAll : true, reportDir : './report_dir', reportFiles : 'SourceCodeScanningReport.html', reportName : 'Source Code Scanning Report'] ) } } }
具体参数如表1所示。
参数 |
参数选项 |
参数说明 |
---|---|---|
-i/--input-path |
path |
必选参数。待扫描源码的文件夹或压缩包路径,若存在多个扫描路径需使用英文逗号分割。 例如:/home/test1,/home/test2。 |
-c/--cmd |
cmd |
指定源代码的构建命令,例如:make all。如果扫描的源码只包含解释型语言,则为可选参数,否则为必选参数 |
-s/--source-type |
c,c++,asm,fortran,go,interpreted |
可选参数。待扫描源码类型。 |
-t/--target-os |
target-os |
可选参数。迁移的目标操作系统,如果用户不输入则默认为当前操作系统。 例如:bclinux7.7。 |
-p/--compiler |
gcc,clang |
可选参数。编译器版本,默认为选定目标操作系统的默认GCC版本。 例如:gcc7.8.5。 |
-f/--fortran-compiler |
flang-ver |
可选参数。fortran代码的编译器版本,默认为flang 2.5.0.1。 |
-b/--build-tool |
make,cmake,automake,go |
可选参数。构建工具,默认make,只有在--source-type中没有c/c++/asm/fortran并且包含go时可以选go。 |
-o/--output |
/home/test/report |
可选参数。扫描报告的存放地址和文件名称,默认存放在当前执行路径下,名称默认为功能名_时间戳_uuid(4位)。 |
--set-timeout |
time |
可选参数。命令行的超时时间,默认无超时时间。 |
-l/--log-level |
0,1,2,3 |
可选参数。设置日志等级,日志等级分类有0(DEBUG)、1(INFO)、2(WARNING)、3(ERROR),默认为1(INFO)。 |
-r/--report-type |
all,json,html,csv |
可选参数。 扫描报告的格式,默认为all,即默认生成json、html、csv三种报告。 |
--ignore |
/opt/ignore.json |
可选参数。屏蔽扫描规则信息。 |