2

我正在尝试通过 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"])
          }
        }
      }
    }

但是构建正在考虑从 jenkins-> 配置设置而不是服务完成的全局配置jenkinsfile

jenkinsfile我的或我在这里遗漏的任何东西是否有任何语法问题。

4

2 回答 2

1

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

exclusionsSetting: '',

代替

exclusionsSetting: 'global',

为了覆盖全局 Checkmarx 设置

于 2019-11-20T01:26:36.297 回答
0

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

首先使用以下命令生成令牌 runCxConsole.cmd GenerateToken -v -CxUser username -CxPassword admin -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

于 2020-09-26T08:13:28.053 回答