---
title: Jenkins流水线示例代码
description: "示例代码如下："
url: https://www.hikunpeng.com/document/detail/zh/nativedevp/userguide/pipeline/NativeDevelopment_0061.html
sourcePath: /source/zh/nativedevp/userguide/pipeline/NativeDevelopment_0061.html
indexId: 12743d9239ced844a7ed2a8e0b6791484fcd55216b63cfea5f3b48c05c9c84a668
---
# Jenkins流水线示例代码

示例代码如下：

```
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
/home/TestData/wtdbg2-2.5
-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']
)
}
}
}
```

- 使用源码迁移功能时，若是源码文件建议放到构建流程节点前，若是扫描软件包建议放在构建流程节点后。
- “/home/TestData/wtdbg2-2.5”指待扫描源码的文件夹或压缩包路径，请根据实际情况进行替换。
- 源码迁移报告结果详细内容请参见  查看分析结果(https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_t50/Plugins_UserGuide/DevKit_Porting_0012.html)
。
