在Jenkins2.X使用Pipeline执行python测试脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jenkins2.X使用Pipeline执行python测试脚本相关的知识,希望对你有一定的参考价值。

参考技术A 一、pipeline介绍
Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变。
Pipeline,一套运行于Jenkins上的工作流框架, 将原本独立运行于单个或者多个节点的任务连接起来, 实现单个任务难以完成的复杂流程编排与可视化。
二、jenkins2以上版本如果在安装时安装插件,就有了。如果没有请升级你的版本,我现在是 2.258。

三 、Pipeline脚本是由Groovy语言实现(无需专门学习)支持两种语法:Declarative 声明式,Scripted Pipeline 脚本式。
我们以声明式为例写个最简单的:
1、新建一个pipeline(流水线)的工作job,在流水线选择helloworld模板:

1、在流水线上的脚本输入下面的:

2、执行的视图:

控制台输出结果如下:

在 Jenkins 2 Pipeline 中执行 SonarQube Scanner

【中文标题】在 Jenkins 2 Pipeline 中执行 SonarQube Scanner【英文标题】:Execute SonarQube Scanner within Jenkins 2 Pipeline 【发布时间】:2016-11-02 14:41:20 【问题描述】:

我想在我的 Jenkins 2.x 管道中执行“SonarQube 扫描仪”步骤。

当我尝试在管道语法中创建示例 groovy 时,我只得到以下格式的 groovy 脚本:

step <object of type hudson.plugins.sonar.SonarRunnerBuilder>

有谁知道正确的步骤语法是什么?例如。发布 JUnit 报告的样子

step([$class: 'JUnitResultArchiver', testResults: ''])

我使用以下版本:

詹金斯 2.11 SonarQube 扫描仪 2.6.1 SonarQube 插件 2.4.1

【问题讨论】:

SonarQube 插件 2.4.4 也不起作用 【参考方案1】:

我想我明白了。 首先,您必须检索您的 SonarQube 扫描仪工具

def sonarqubeScannerHome = tool name: 'SonarQubeScanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'

然后就可以通过 Shell 调用 sonar-scanner:

sh "$sonarqubeScannerHome/bin/sonar-scanner -e -Dsonar.host.url=..."

【讨论】:

【参考方案2】:
env.sonarHome= tool name: 'scanner-2.4', type: 'hudson.plugins.sonar.SonarRunnerInstallation'

withSonarQubeEnv('sonar.installation')  // from SonarQube servers > name
  sh "$sonarHome/bin/sonar-runner -Dsonar.host.url=$SONAR_HOST_URL  -Dsonar.login=$SONAR_AUTH_TOKEN    -Dsonar.projectName=xxx -Dsonar.projectVersion=xxx -Dsonar.projectKey=xxx -Dsonar.sources=."


【讨论】:

这将需要 jenkins >= 2.5 和 sonarqube >= 5.2 的 sonarqube 插件【参考方案3】:

相反,您可以只提供您的声纳运行器的完整路径。如下图sn-p所示。

def runSonarScan(sonar_url)
    withEnv(['SONAR_HOST=' + sonar_url]) 
        sh '''
        $/opt/sonarqube/sonar-runner-2.4/bin/sonar-runner -e -Dsonar.host.url=$SONAR_HOST
        '''
    

如果您有特定的声纳属性,请将它们添加为 sonar-project.properties 文件,如下所示Sonar Project Properties

【讨论】:

以上是关于在Jenkins2.X使用Pipeline执行python测试脚本的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins pipeline:pipeline 语法详解

jenkins pipeline持续集成

Jenkins pipeline 语法详解

使用Jenkins Pipeline自动化构建发布Java项目

Jenkins pipeline概念理解

devops-jenkins-Pipeline基础语法