如何通过jenkinsfile配置Checkmarx

时间:2019-09-19 07:12:30

标签: jenkins groovy checkmarx

我正在尝试通过Jenkins文件配置checkmarx,之前checkmarx脚本正在从全局配置的groovy文件中读取。

这是我的jenkinsfile的外观

`stage('Code Scanning') {
      parallel {
        stage('Static Code Analysis') {
          steps {
            step([$class: 'CxScanBuilder',
                    comment: '',
                    credentialsId: '',
                    excludeFolders: '.helmignore, build, templates, javadocs, javadoc, 
                                   dist, node_modules, WMSRegistryReader.java, 
                                   BlowfishEncryptionStrategy.java, BlowfishUtils.java',
                    excludeOpenSourceFolders: '',
                    exclusionsSetting: 'global',
                    failBuildOnNewResults: false,
                    failBuildOnNewSeverity: 'MEDIUM',
                    filterPattern: '''!**/_cvs/**/*, !Checkmarx/Reports/*.*''',
                    fullScanCycle: 10,
                    groupId: '0de2e46c-8410-478a-85b9-b5dce83f8ecb',
                    includeOpenSourceFolders: '',
                    osaArchiveIncludePatterns: '*.zip, *.war, *.ear, *.tgz',
                    osaInstallBeforeScan: false,
                    password: '{}',
                    preset: '36',
                    projectName: "${APP_NAME}",
                    sastEnabled: true,
                    serverUrl: 'https://checkmarx.abc.com',
                    sourceEncoding: '1',
                    username: '',
                    vulnerabilityThresholdResult: 'FAILURE',
                    waitForResultsEnabled: true])
          }
        }
        stage('Open Source Compliance') {
          steps {
            blackduck([appName: "${APP_NAME}", appDomain: "${APP_DOMAIN}", branchName: 
            "master"])
          }
        }
      }
    }

`

但是Build正在考虑通过jenkins->配置设置而不是服务jenkinsfile

完成的全局配置

我的jenkinsfile中是否有语法问题,或者我在这里是否缺少任何内容。

2 个答案:

答案 0 :(得分:0)

找不到文档,但我已经设置了

exclusionsSetting: '',

代替

exclusionsSetting: 'global',

为了覆盖Checkmarx的全局设置

答案 1 :(得分:0)

我选择自由风格,而不是去詹金斯从事管道工作。 即使没有checkmarx插件,这也是我的配置方式。

首先使用以下命令生成令牌 runCxConsole.cmd GenerateToken -v -CxUser用户名-CxPassword管理-CxServer http:// localhost

在Build-> Execute Shell中的代码行下面进行加密

Jenkins Script 
#!/bin/bash
export JAVA_HOME=/usr/bin/java
export CHECKMARX_HOME=/<checkmarx plugin path>/CxConsolePlugin-8.90.2
echo ${WORKSPACE}
echo $CX_PROJECT_NAME
mkdir ${WORKSPACE}/cxReports
export CHECKMARX_REPORTS_HOME=${WORKSPACE}/cxReports
echo $CHECKMARX_REPORTS_HOME

$CHECKMARX_HOME/runCxConsole.sh Scan -v -CxServer <checkmarx server details> -ProjectName "<project anme>" -cxToken <token> -locationtype folder -locationpath "${WORKSPACE}" -preset "Default Checkamrx" -reportcsv $CHECKMARX_REPORTS_HOME/$CX_PROJECT_NAME.csv -ReportPDF $CHECKMARX_REPORTS_HOME/$CX_PROJECT_NAME.pdf

注意:始终使用令牌与服务器进行身份验证,而不是在CLI命令中对用户名和密码进行硬编码。

有关更多信息,您可以访问https://checkmarx.atlassian.net/wiki/spaces/SD/pages/222232891/Authentication+Login+to+the+CLI