.NET継続的インテグレーションsonarqubeのJenkinsの統合(プラグイン・モード)とsonarqubeの記事

シリーズカタログ

プラグインによるジェンキンスはSonarqubeを統合しました

1によって、私たちは、実際にSonarqube公式にも簡単に管理のためジェンキンスプラグインを提供し、sonarqubeビルドを実行することができますので、ジェンキンスCI環境を構成する方法を学びました。Sonarqubeは、プロジェクトは次のような利点があります実行するにはプラグインを使用します

1.あなたが示すように、アイテムは、Sonarqubeプロジェクトではっきりと見ることができます

アバター

Sonarqubeの手動で記述する必要はなく、自動選択、プロジェクト名、一目でプロジェクトのバージョンを終了し、開始します。cmdは情報を表示する必要はありません。少し流水线感じ。

2. Sonarqubeとの統合、下記を参照してください

アバター

私たちは、Sonarqubeの使用はプラグインでは、このようなプロジェクトを参照することができ、状態や処理状態sonarqubeサーバ側ジェンキンスページ表示プロジェクトは、我々は自動的にSonarqube Web管理ページに入りますsonarqubeアイコンに関連付けられたグラフをクリックすると、自動的にナビゲートすることができますこのプロジェクトは、例本事業で建設場合に、特に多数は私たちに利便性の多くをもたらしました。

ジェンキンスパイプライン3.統合

上記単に便利な場所ですが、かけがえのないのプラグを示していない、このプラグジェンキンスパイプラインを使用するときに使用しなければならないという点で、かけがえのないです。

ここsonarqubeジェンキンスを設定するには、プラグインをインストールする方法だ、と述べました。

ジェンキンスは、管理インターフェースにプラグイン「利用可能な」インタフェースに切り替えるには、入力sonarQube Scannerインストール設定の完了後、次いで、取り付けられた(上述プラグジェンキンスを有する前部に搭載され、ここでは繰り返さないことにします)。

ツールオプションの設定

入りますManage Jenkins>Global Tool Configuration

検索sonarqube for msbuildは次のような構成であります

アバター
どこの名前は限り、あなたは簡単に管理できるよう、選択することができます。

検索するにはsonarqube scanner、以下の構成を

アバター
設定後、下部をクリックしてsave保存

点击完保存之后,我们再进入config system找到sonarqube servers配置如下

アバター

serverurl要根据实际情况配置,如果sonarqube和jenkins并不在同一台机器,则需要配置ip地址.

下面我们新建一个自由式任务.名称为mysonar(名称随意)
进入到Build栏目,点击Add Build Steps,我们从来拉列表中选择Sonarqube开始标识(通过前面的章节我们了解到,sonarqube构建包括开始标记,结束标记,然后中间是msbuild构建)

アバター

点击后会出现以下配置项,按实际情况配置即可

アバター
指定项目名,key(key可以任意起名,只做为惟一标识,并不是ssh登陆类似的key)

然后再新建一个执行bat的步骤.如下图

アバター

这里很普通,指定一个要编译的项目,需要注意的是我这里有环境变量msbuild,如果找不到请添加环境变量或者指定msbuild完整路径.

然后再添加一个步骤,这次选择SonarScanner for msbuild -end analysis.

然后点击确定完成创建,我们点击build now触发一次构建.

构建成功后信息如下图

アバター
我们点击红色框先的任意一项,就可以跳转到sonarqube web管理界面,如下图示

アバター

需要注意的是第一次运行并不能构建成功,这是因为Jenkins需要下载相关插件,插件下载成功后我们进入Jenkins\tools\hudson.plugins.sonar.MsBuildSQRunnerInstallation目录下的你的 SonarScanner for MSBuild的名字,它就是你在Global Tool Configuration>SonarScanner for MSBuild指定的名称,进去以后找到SonarQube.Analysis.xml对它进行配置,关于此文件的配置前面我们讲到过,这里不再赘述.

Sonarqube插件集成单元测试覆盖报告

回忆前面章节,添加sonarqube单元测试覆盖率报告需要额外执行一步运行单元测试的代码,这并不是重点,重点在于如何在Begin Analysis部分指定单元测试执行文件,这里通过指定Additional arguments来实现,如下图示

アバター

然后再在msbuild构建完成后添加一步执行单元测试的代码(可以复制前面的代码)就行了,这里需要说明的是前面为了方便讲解我们是在项目目录下执行脚本,使用了%CD%这样的相对路径,Jenkins中建议换成绝对路径,以防出现不必要的麻烦.

完了再进入Sonarqube web管理界面,就可以看到有单元测试覆盖率报告了

アバター

Token方式与Sonarqube server交互

上一节我们讲解了通过配置SonarQube.Analysis.xml方式实现与Sonarqube server交互(实际上我们执行构建的时候sonarqube runner是通过http方式把数据提交到sonarqube server),这样做有非常明显的缺点.第一是安全问题,我们知道其实我们是把admin的用户名和密码写入了SonarQube.Analysis.xml文件里,这样很容易暴露管理员账户,在企业生产环境中,如果有恶意的人获取了管理员账户,则可以进行任意构建,然后触发布,这样会造成非常严重的后果,即使被没有恶意的开发者获取到,开发者可能出于好奇心在生产环境中进行测试尝试,这样也可能会造成非常严重的后果.第二是管理很不方便,如果在生产环境的jenkins是分布式的,那么我们进入每一台服务器更改配置文件是很不方便的,如果管理员账户和密码更改了还要进入每台服务器更改,虽然现在有各种自动化的工具使得这种操作不是特别麻烦的问题,但是集中的配置更加方便维护.下面我们讲解如何通过在Jenkins中为Sonarqube server添加token来解决以上两个问题.

在Sonarqube里生成token

まずのみ管理者アカウントがトークンを生成できることに注意する必要があり、他のアカウントはこれを行うことはできません。私たちは、sonarqube Web管理インターフェイスを入力して、次の手順を実行します

アバター

マイアカウントの入力した後securityタブを、次のようなインターフェイスを見ることができます

アバター

私たちは、[生成]ボタンがアクティブになり、その場合には、テキストボックス赤いボックス内のキーの名前を入力し、私たちはトークンを生成することができますクリックしてください

アバター

私たちはをクリックしてcopyトークンが格納されているか、テキスト文書に直接コピーしたり、他の場所で、そのトークンは、このページを保存し、終了する必要があります注意しなければならないされた後に消えますトークンの値(ここでは手段の消失がもはやむしろ真よりも、表示されていると言うん消失)。

ジェンキンスレーンに生成されたトークンを追加します。

我々は戻っジェンキンスに行く、入るManage Jenkins>configure system見つけることSonarQube serversにトークン貼り付けますServer authentication token

アバター

すでに場合は注意が必要で、SonarQube.Analysis.xmlアカウントのパスワードを設定し、削除する必要があり、次のコードを削除します

<Property Name="sonar.login">admin</Property>
<Property Name="sonar.password">admin</Property>

おすすめ

転載: www.cnblogs.com/tylerzhou/p/11273847.html