中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

创建Jenkins扫描门禁任务

创建任务

请勿在master节点上运行。

  1. 进入Jenkins主页,在左侧树单击“新建任务”
    图1 创建pipeline任务1
  2. 打开新建任务页面,填写任务名称,选择流水线选项,单击“确定”按钮创建任务。
    图2 创建pipeline任务2
  3. 进入到新创建的Pipeline任务中,左侧树单击“配置”,打开配置页面。将Pipeline脚本样例复制到流水线配置的脚本中,最后单击“保存”
    图3 创建pipeline任务3

    门禁检查代码示例请参见Jenkins流水线扫描门禁代码示例

  4. 单击任务左侧树“立即构建”,执行任务。
    图4 执行任务
  5. 查看任务执行状态。
    • 传统方式查看任务执行状态。
      图5 传统方式查看任务执行状态
    • 现代方式查看任务执行状态。
      在Jenkins主页,单击左侧树“打开Blue Ocean”,在打开页面中选择当前Pipeline任务,当任务执行状态为时,表示当前任务执行成功,单击打开后可查看当前任务执行的主要步骤状态图。
      图6 现代方式查看任务执行状态
  6. 任务执行完成后,可查阅报告。
    • 传统方式查询报告。
      图7 传统方式查阅报告
    • 现代方式查阅报告

      在Jenkins主页,单击左侧树“打开Blue Ocean”,在打开页面中选择当前Pipeline任务,当任务执行状态为时,表示当前任务执行成功,单击打开后右上角选择“制品”,可查阅当前任务报告。

      图8 现代方式查阅报告

      查看源码迁移、构建亲和分析报告,如图9图10所示。

      图9 源码迁移报告
      图10 构建亲和分析报告

Jenkins流水线扫描门禁代码示例

pipeline { 
    agent any 
    options {
        timeout(time: 1, unit: 'HOURS') 
    } 
    parameters { 
        string(name: 'GIT_URL', defaultValue: 'https://github.com/ruanjue/wtdbg2.git', description: '--> git url <--') 
        string(name: 'GIT_BRANCH', defaultValue: 'v2.5', description: '--> code branch <--') 
        string(name: 'GIT_TARGET_DIR_NAME', defaultValue: 'wtdbg2', description: '--> code branch <--') 
    } 
    stages{ 
        stage('Git Code') { 
            agent { 
                label 'kunpeng_scanner' //对应添加节点时的标签,可选择多个
            } 
            steps { 
                echo '====== 获取源码 ======' 
                checkout scmGit(branches: [[name: "${params.GIT_BRANCH}"]], 
                                browser: github("${params.GIT_URL}"), 
                                extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: "${params.GIT_TARGET_DIR_NAME}"], cleanBeforeCheckout(deleteUntrackedNestedRepositories: true)], 
                                userRemoteConfigs: [[url: "${params.GIT_URL}"]]) 
            } 
        } 
        stage('PARALLEL BUILD') { 
            parallel { 
                stage('Kunpeng') { 
                    agent { 
                        label 'kunpeng_scanner' 
                    } 
                    stages{
                        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'] 
                                            ) 
                                } 
                            } 
                        }
                        stage('vectorized-check') { 
                            steps { 
                                echo '====== 向量化检查 ======' 
                                sh '''                                     
                                    if [ ! -d "./report_dir" ]; then mkdir -p ./report_dir; fi
                                    /usr/bin/rm -rf ./report_dir/*.html
                                    devkit advisor vec-check -i ../src/test-gllvm -f ../src/test-gllvm -c make -r html -o ./report_dir
                                    mv ./report_dir/vec-check*.html ./report_dir/vectorized-check.html 
                                ''' 
                            } 
                            post { 
                                always { 
                                publishHTML(target: [allowMissing: false, 
                                            alwaysLinkToLastBuild: false, 
                                            keepAll              : true, 
                                            reportDir            : './report_dir', 
                                            reportFiles          : 'vectorized-check.html', 
                                            reportName           : 'vectorized-check Report'] 
                                            ) 
                                } 
                            } 
                        }
                    } 
                } 
            } 
        } 
    } 
}
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词