腾讯云代码分析腾讯云代码分析
指南
API
  • IDE

    • Visual Studio Code TCA 插件
    • JetBrains IDEs TCA 插件
  • CNB

    • CNB TCA 插件
    • CNB TCA 徽章
  • Jenkins

    • Jenkins TCA 插件
  • MCP

    • TCA MCP 服务器
  • 深入

    • 内网仓库分析
    • API 触发分析
    • 分析速度优化
    • 问题检出率提升
  • 其他

    • 问题忽略方式
立即体验
  • 服务协议
  • 隐私协议
  • 简体中文
  • English
指南
API
  • IDE

    • Visual Studio Code TCA 插件
    • JetBrains IDEs TCA 插件
  • CNB

    • CNB TCA 插件
    • CNB TCA 徽章
  • Jenkins

    • Jenkins TCA 插件
  • MCP

    • TCA MCP 服务器
  • 深入

    • 内网仓库分析
    • API 触发分析
    • 分析速度优化
    • 问题检出率提升
  • 其他

    • 问题忽略方式
立即体验
  • 服务协议
  • 隐私协议
  • 简体中文
  • English
  • IDE

    • Visual Studio Code TCA 插件
    • JetBrains IDEs TCA 插件
  • CNB

    • CNB TCA 插件
    • CNB TCA 徽章
  • Jenkins

    • Jenkins TCA 插件
  • MCP

    • TCA MCP 服务器

Jenkins TCA 插件

支持在 Jenkins 中安装 TCA 插件,通过流水线触发代码分析。

安装指引

  1. 点击 下载 Jenkins TCA 插件安装包。

  2. 进入 Jenkins 页面,访问 系统管理 -> 插件管理 -> Advanced settings 页面,将下载的 Jenkins TCA 插件安装包上传后部署。

使用指引

  1. 先在 TCA 上创建好 团队 和 项目(如果已有,可忽略),并接入代码仓库,可参考 快速开始。

  2. 接入仓库后,进入代码库页面,并点击 插件配置,进入 TCA 插件配置弹框页,并选择 Jenkins 流水线 页签。

    插件配置

  3. 在 Jenkins 流水线 页签选择需要使用的分析方案,如果没有,需要先创建,可参考分析方案。

  4. 点击 生成 Jenkinsfile TCA 插件配置 按钮,复制配置信息,然后按需配置到代码库下的 Jenkinsfile 或 流水线 Script 中:

    • 代码库 Jenkinsfile 配置

      进入代码仓库根目录下,将生成的配置内容复制到 Jenkinsfile 中(如果不存在,需要先创建 Jenkinsfile 文件,点击了解更多),在流水线中选择 Pipeline script from SCM ,并设置脚本路径为 Jenkinsfile。

    • 流水线 Script 配置

      进入 Jenkins 流水线 ,选择 Pipeline script ,将生成的配置内容复制到脚本中,并在 代码分析 步骤前拉取待扫描代码库,可以使用 git 或 checkout 插件下载。

  5. 到此插件已配置完毕。如需调整参数配置,可参考如下:

    pipeline {
      agent any
    
      stages {
        // 拉取代码示例
        stage ('拉取代码') {
          steps {
              git 'https://github.com/xxx.git'
          }
        }
    
        stage ('代码分析') {
          steps {
            tca (
              // 必填参数
              scmType: 'git', // 代码库类型
              repoUrl: 'http://xxx', // 代码库地址
              orgSid: 'xxx', // 团队编号,从TCA官网获取
              teamName: 'xxx', // 项目名称,从TCA官网获取
              schemeID: xxx, // 分析方案ID,从TCA官网获取
              token: 'xxx', // 个人凭证信息(个人敏感信息,请注意保密!)
              // 选填参数
              domain: 'xxx', // TCA URL,用于API请求和报告链接生成,默认为https://tca.tencent.com
              scanDir: '', // 需要分析的相对目录,指定代码仓库下的子目录作为分析目录,适用于大仓场景只分析某个模块目录,默认不配置,为扫描代码仓库根目录。
              revision: '', // 分析版本号,可通过环境变量'{SCM}_COMMIT'设置(SCM可选[GIT]),默认不配置,为当前工作空间的代码版本
              sourceBranch: '', // 分支名称,可通过环境变量'{SCM}_BRANCH'设置(SCM可选[GIT]),默认不配置,为当前工作空间的代码分支;如拉取代码时未指定分支,则该选项为必填
              targetBranch: '' // 需要对比的目标分支名称,适用于MR场景,可通过环境变量'{SCM}_TARGET_BRANCH'设置(SCM可选[GIT]),默认为空
              total: false, // 是否全量扫描,默认为 false,即增量扫描
              continueOnThresholdNoPass: false, // 门禁不通过也不阻塞后续步骤,不勾选,默认阻塞后续步骤
              // 本地分析参数
              localScan: true, // 开启本地分析,不勾选,默认为节点分析
              clientWorkspace: '', // 客户端工作空间,用于本地分析,默认为'~/tca_client'
              preCmd: '', // 前置命令(需要前置操作时使用),默认为空
              buildCmd: '', // 编译命令(分析编译型语言时使用),默认为空
              exclude: '', // 需要过滤的目录或文件(相对路径),多个路径用英文逗号(,)分隔,路径格式遵循python fnmatch语法,默认为空
              include: '' // 指定只分析的目录或文件(相对路径),多个路径用英文逗号(,)分隔,路径格式遵循python fnmatch语法,默认为空
            )
          }
        }
      }
    }
    

    提示

    可以按需将 tca 步骤提取出来写入 Jenkins 流水线 的任意阶段中!

  6. 插件参数详解:

    • 必填参数和 domain 参数通过 TCA 插件配置页自动生成。

    • revision 和 sourceBranch 会通过本地 git 命令获取当前工作空间下代码库的版本和源分支,如果获取失败,需要用户自行配置,也可以通过环境变量设置。

    • 插件只会在执行失败或者门禁不通过的情况下阻塞流水线,设置 continueOnThresholdNoPass 可以在门禁不通过的情况下也不阻塞流水线。

    • localScan 可开启本地分析,复用当前流水线执行环境,不再将任务发送到常驻节点;本地分析参数只有localScan=true 才生效。

    • 本地分析需要下载客户端,可以配置 clientWorkspace 为客户端目录,固定该目录可以复用客户端,不用每次耗时下载。

    • preCmd 和 buildCmd 只有在分析方案有配置编译型工具的情况下使用。

    • 本地分析默认超时时间为 2h,可通过环境变量 TCA_LOCAL_TIMEOUT 设置超时时间,单位为 h。

  7. 本地结果文件:

    插件默认在当前工作空间下生成结果文件 tca_report.json,也可通过 TCA_RESULT_FILE 环境变量配置文件路径,结果文件包含以下内容:

    • status: success(成功)/failure(门禁不通过)/error(失败)

    • status_code: 0(成功)/255(门禁不通过)/1(失败)

    • text: 执行情况

    • description: 详细结果

    • url: 分析结果链接

    • scan_report: 详细报告

      • lintscan: 代码检查结果

      • duplicatescan: 代码重复率结果

      • cyclomaticcomplexityscan: 圈复杂度结果

      • clocscan: 代码统计结果

      • qualityscan: 门禁结果

最近更新时间: 2025/12/8 14:59
贡献者: nickctang