Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SonarQube (SonarCloud) 対応 #674

Merged
merged 47 commits into from
Apr 29, 2019
Merged
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2ebadad
[ci skip] SonarQube に関するドキュメントを追加
m-tmatma Dec 2, 2018
e3ce197
SonarQube の処理を実装
m-tmatma Dec 2, 2018
b0d68dd
MinGW を SonarQube の対象外にする
m-tmatma Dec 2, 2018
56ac571
ログの解析を通常ビルドだけに限定する
m-tmatma Dec 3, 2018
50e7c08
必要な変数がないときにはエラーにしない
m-tmatma Dec 3, 2018
4d759e1
タイムアウトになるので SonarQube を無効にする
m-tmatma Dec 3, 2018
e0bd642
ダウンロードに curl を使う
m-tmatma Jan 20, 2019
bfa2ea5
SonarScanner_MSBUILD の定義を移動
m-tmatma Jan 20, 2019
a038c4f
ファイルを分割
m-tmatma Apr 6, 2019
998e74c
改行修正
m-tmatma Apr 6, 2019
75e8e3b
/d:sonar.organization を廃止して /o を使う
m-tmatma Apr 6, 2019
f7e3757
環境設定手順を追加
m-tmatma Apr 6, 2019
9245264
ログオプションの指定漏れ修正
m-tmatma Apr 6, 2019
8095312
SonarQube 用のタスクを追加
m-tmatma Apr 6, 2019
ffb4847
不要な step を削除
m-tmatma Apr 6, 2019
7bd62ed
秘密の変数が設定されるようにする
m-tmatma Apr 6, 2019
79186d9
install msbuild-sonarqube-runner
m-tmatma Apr 6, 2019
d599359
環境変数の表示を削除 (念のため)
m-tmatma Apr 6, 2019
88a323b
ビルドトリガーを絞る
m-tmatma Apr 6, 2019
9fa41e8
タイトル修正
m-tmatma Apr 6, 2019
c01335e
bw-output のパスを絶対パスで指定する
m-tmatma Apr 6, 2019
779535b
SonarQube のビルドトリガーの限定を無効化
m-tmatma Apr 6, 2019
0ed2ae7
SONAR_QUBE_TOKEN をチェックするようにする
m-tmatma Apr 6, 2019
a14e0ca
タイムアウトを伸ばす
m-tmatma Apr 6, 2019
f17e5a7
テストコード
m-tmatma Apr 6, 2019
20b7b10
sonar cloud の badge を追加
m-tmatma Apr 6, 2019
537a9d3
構文エラーを修正
m-tmatma Apr 6, 2019
063c2fe
ビルドトリガーを Schedule のみに限定する
m-tmatma Apr 6, 2019
8b610a3
無視条件を追加
m-tmatma Apr 7, 2019
d166f96
SonarQube に対する説明を追加
m-tmatma Apr 7, 2019
9226cde
ドキュメントを更新
m-tmatma Apr 7, 2019
09d95c4
appveyor で SonarQube を実行するために入れたコードを削除
m-tmatma Apr 7, 2019
cc7b414
ドキュメントを更新
m-tmatma Apr 7, 2019
794d9dc
ファイル名を変更
m-tmatma Apr 27, 2019
53b9d2a
SonarQube の JOB をテンプレートに移動
m-tmatma Apr 27, 2019
5030dd3
空行を削除
m-tmatma Apr 27, 2019
dc39ff8
ドキュメントの更新
m-tmatma Apr 27, 2019
4132ba7
説明を拡充
m-tmatma Apr 28, 2019
49b344c
無視条件でワイルドカードを使う
m-tmatma Apr 28, 2019
5fc4d49
SonarQube の JOB 名の説明を修正
m-tmatma Apr 28, 2019
b5e74ee
列の説明の誤りを修正
m-tmatma Apr 28, 2019
2fe2bb1
ビルド用のバッチファイル の具体的なパスを記載する
m-tmatma Apr 28, 2019
cf49be4
コメント修正
m-tmatma Apr 28, 2019
f28be3f
のみ、のみを改善
m-tmatma Apr 28, 2019
793b638
curl に関して説明を追加
m-tmatma Apr 28, 2019
0984036
Build.Reason による指定で template.job.SonarQube.yml 以外に関しては削除
m-tmatma Apr 28, 2019
6ff2a3c
Markdownの参照形式によるリンク を使う
m-tmatma Apr 28, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ msbuild-*.log
msbuild-*.log.csv
msbuild-*.log.xlsx
sha256.txt
*.bak
*.pyc
/tests/build
/cppcheck-install.log
Expand All @@ -20,3 +21,7 @@ tags
testData_*.txt
html
doxygen*.log
.sonarqube
build-wrapper-win-x86.zip
build-wrapper-win-x86
berryzplus marked this conversation as resolved.
Show resolved Hide resolved
bw-output
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
[![License: Zlib](https://img.shields.io/badge/License-Zlib-lightgrey.svg)](https://opensource.org/licenses/Zlib)
[![CodeFactor](https://www.codefactor.io/repository/github/sakura-editor/sakura/badge)](https://www.codefactor.io/repository/github/sakura-editor/sakura)
[![Build Status](https://dev.azure.com/sakuraeditor/sakura/_apis/build/status/sakura-editor.sakura?branchName=master)](https://dev.azure.com/sakuraeditor/sakura/_build/latest?definitionId=3&branchName=master)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=sakura-editor_sakura&metric=alert_status)](https://sonarcloud.io/dashboard?id=sakura-editor_sakura)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

メモ:トップページにバッヂが付くんですね 😄


<!-- TOC -->

Expand Down
209 changes: 209 additions & 0 deletions SonarQube.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# SonarQube

## SonarQube および SonarCloud

### SonarQube

[SonarQube](https://www.sonarsource.com/products/sonarqube/) は
[sonarsource](https://www.sonarsource.com/) が提供する静的解析サービス。


### SonarCloud

[SonarCloud](https://sonarcloud.io/about) は [SonarQube](https://www.sonarsource.com/products/sonarqube/) のクラウド版。
いつものごとく、オープンソースに対してはタダです。

サクラエディタのソースコード解析には 1時間半ほどかかるので、並列実行が可能な Azure Pipelines のみで夜間の定期タスクのみで解析を実施します。
berryzplus marked this conversation as resolved.
Show resolved Hide resolved

## SonarQube のローカルでの使用方法

### SonarQube のアカウント設定

https://sonarcloud.io/sessions/new にアクセスして GitHub アカウントでログインします。

### プロジェクトの作成

https://sonarcloud.io/projects/create にアクセスしてプロジェクトを作成します。

- Organization 名をメモしておきます。
- Project 名をメモしておきます。
- Access Token をメモしておきます。
**この情報はパスワードと同じ意味を持つので漏れないように注意します。**

### ローカルで実行する場合の環境設定 (事前準備)

1. https://www.java.com/ja/download/ から JAVA のランタイムをダウンロードしてインストールする
1. `JAVA_HOME` の環境変数を設定する


`set JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_201`

1. https://chocolatey.org/install#install-with-cmdexe を参考に chocolatey をインストールする。

### 解析手順の流れ (一般論)

1. [chocolatey](https://chocolatey.org/) で [SonarScanner for MSBuild (SonarScanner.MSBuild.exe)](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild) をダウンロードする
1. curl で https://sonarcloud.io/static/cpp/build-wrapper-win-x86.zip をダウンロードして解凍する
1. `C:\ProgramData\chocolatey\bin\SonarScanner.MSBuild.exe begin` を呼ぶ。
1. `build-wrapper-win-x86.zip` の中の `build-wrapper-win-x86-64.exe` を使って msbuild.exe を起動する。
1. `C:\ProgramData\chocolatey\bin\SonarScanner.MSBuild.exe end` を呼ぶ。

### 解析手順の流れ (サクラエディタ)

1. [chocolatey](https://chocolatey.org/) で [SonarScanner for MSBuild (SonarScanner.MSBuild.exe)](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild) をダウンロードする
1. `choco install "msbuild-sonarqube-runner" -y`
1. [build-sln.bat](build-sln.bat) でソリューションをビルドする
1. [build-sonar-qube-start.bat](build-sonar-qube-start.bat) で SonarQube の準備を行う。
1. [build-sonar-qube-env.bat](build-sonar-qube-env.bat) を呼び出し必要な環境変数の設定を行う。
1. curl で https://sonarcloud.io/static/cpp/build-wrapper-win-x86.zip をダウンロードして解凍する。
1. `C:\ProgramData\chocolatey\bin\SonarScanner.MSBuild.exe begin` を呼んで SonarQube の解析を開始する。
1. `build-wrapper-win-x86.zip` の中の `build-wrapper-win-x86-64.exe` 経由で `msbuild.exe` を起動する。
1. [build-sonar-qube-finish.bat](build-sonar-qube-finish.bat) で SonarQube の解析結果を [SonarCloud](https://sonarcloud.io/about) のサーバーに結果を送る。
1. `C:\ProgramData\chocolatey\bin\SonarScanner.MSBuild.exe end` を呼ぶ。

## サクラエディタを SonarQube でビルドする手順

`SONAR_QUBE_TOKEN` の値は SonarQube のサイトにログインして確認できます。

`SONAR_QUBE_ORG` と `SONAR_QUBE_PROJECT` と `SONAR_QUBE_TOKEN` の値はそれぞれ自分が作成したものに読み替えてください。

```
set SONAR_QUBE=Yes
set SONAR_QUBE_ORG=sakura-editor
set SONAR_QUBE_PROJECT=sakura-editor_sakura
set SONAR_QUBE_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
build-sln.bat Win32 Release
```

## SonarQube に関する情報

### SonarQube の使用方法に関するサイト

- https://www.appveyor.com/blog/2016/12/23/sonarqube/
- https://docs.sonarqube.org/7.4/analysis/analysis-parameters/

### SonarScanner の使用方法

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild#AnalyzingwithSonarQubeScannerforMSBuild-Usage

## CI でのビルド

### azure pipelines の設定

#### 環境変数

1. https://dev.azure.com/sakuraeditor/sakura にアクセスします。
2. `Pipelines` を選ぶ
3. `Edit` ボタンを押す
4. `Run` の右隣りのアイコンをクリックする
5. `Variables` のボタンを押す
6. `Pipelines Variables` で `Add` を押す
7. `SONAR_QUBE_ORG` と `SONAR_QUBE_PROJECT` を追加してそれぞれ値を設定する
8. `SONAR_QUBE_TOKEN` を追加して値を設定し、 鍵のアイコンをクリックする (重要)
9. `Save & Queue` で `Save` を選ぶ

![環境変数の設定画面](azure-SonarQube.png)

#### スケジュール設定

1. https://dev.azure.com/sakuraeditor/sakura にアクセスします。
2. `Pipelines` を選ぶ
3. `Edit` ボタンを押す
4. `Run` の右隣りのアイコンをクリックする
5. `Triggers` のボタンを押す
6. `Scheduled` の `Add` をクリックする
![スケジュール設定1](azure-SonarQube-schedule1.png)
7. 実行させたいスケジュールを設定して、実行させる対象ブランチを設定する
![スケジュール設定2](azure-SonarQube-schedule2.png)
8. 設定を保存する
![スケジュール設定3](azure-SonarQube-schedule3.png)

#### azure-pipelines.yml の設定

##### Job の設定

```
- job: SonarQube
timeoutInMinutes: 120
variables:
SONAR_QUBE: Yes
condition:
eq(variables['Build.Reason'], 'Schedule')
```

1. SonarQube の実行には時間がかかるので [timeoutInMinutes](https://docs.microsoft.com/ja-jp/azure/devops/pipelines/process/phases?view=azure-devops&tabs=yaml#timeouts) の設定を行いタイムアウト時間を延ばす
2. [variables](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch) の設定で `SONAR_QUBE` の環境変数を定義して、ビルド用のバッチファイルに [SonarQube](https://www.sonarqube.org/) を有効にしたビルドであると伝える
3. [Predefined build variables](https://docs.microsoft.com/ja-jp/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml) のうち `Build.Reason` を参照して、どういうトリガーでビルドが行われたかを yaml の中からあるいはビルド用のバッチファイル等から参照することができる。

- `Build.Reason` を yaml の中で参照するとき `variables['Build.Reason']`
- `Build.Reason` を バッチファイル の中で参照するとき `BUILD_REASON`

4. [conditon](https://docs.microsoft.com/ja-jp/azure/devops/pipelines/process/conditions?view=azure-devops&viewFallbackFrom=vsts&tabs=yaml) でビルドトリガーの条件を設定する。条件指定では and や or の条件を指定することができる。

`Build.Reason` としてどういう値を設定できるかは [variables](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch) の `Build.Reason` に説明がある。


例: ビルドトリガーが定期実行のとき

```
condition:
eq(variables['Build.Reason'], 'Schedule')
```


例: ビルドトリガーが定期実行でも PullRequest でもないとき

```
condition:
and
(
ne(variables['Build.Reason'], 'Schedule'),
ne(variables['Build.Reason'], 'PullRequest')
)
```

##### Steps の設定


```
steps:
- script: choco install "msbuild-sonarqube-runner" -y
displayName: install msbuild-sonarqube-runner

# Build solution with SonarQube
- script: build-sln.bat $(BuildPlatform) $(Configuration)
displayName: Build solution with SonarQube

env:
SONAR_QUBE_ORG: $(SONAR_QUBE_ORG)
SONAR_QUBE_PROJECT: $(SONAR_QUBE_PROJECT)
SONAR_QUBE_TOKEN: $(SONAR_QUBE_TOKEN)
```

1. `choco install "msbuild-sonarqube-runner" -y` を実行して `SonarScanner.MSBuild.exe` をインストールする
2. `script` で `build-sln.bat` を実行する
3. `env` で `環境変数` のところで設定した環境変数が有効になるように設定する。

[Secrets](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch&viewFallbackFrom=vsts#secret-variables) の項目を参照

### Appveyor の設定

**appveyor で実施する場合、タイムアウトになってビルドに成功しないので現状で使用していない **

Appveyor のプロジェクトで Settings の Environment にアクセスして `Add variable` を押して環境変数を追加する。

|変数名|意味|注意|
|--|--|--|
|SONAR_QUBE_ORG|Sonar Qube のOrganization 識別子||
|SONAR_QUBE_PROJECT|Sonar Qube のプロジェクト識別子||
|SONAR_QUBE_TOKEN|Sonar Qube のアクセスキー (API キー)|追加するとき右の鍵マークを押して秘密の環境変数に設定する|

![環境変数の設定画面](appveyor-SonarQube.png)


#### Secure the GitHub Authentication token

SonarQube で使用するアクセストークンを暗号化するために使用する

https://www.appveyor.com/docs/build-configuration/#secure-variables
Binary file added appveyor-SonarQube.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added azure-SonarQube-schedule1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added azure-SonarQube-schedule2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added azure-SonarQube-schedule3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added azure-SonarQube.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions azure-pipelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ https://azure.microsoft.com/ja-jp/services/devops/pipelines/ にアクセスし
- [azure-pipelines.yml](azure-pipelines.yml) 最上位の設定ファイル
- [ci/azure-pipelines/template.job.build-unittest.yml](ci/azure-pipelines/template.job.build-unittest.yml) sakura editor 本体のビルド、HTML ヘルプのビルド、インストーラのビルド、単体テストのビルド、実行
- [ci/azure-pipelines/template.steps.install-python-modules.yml](ci/azure-pipelines/template.steps.install-python-modules.yml) 必要な python モジュールのインストール
- [ci/azure-pipelines/template.job.SonarQube.yml](ci/azure-pipelines/template.job.SonarQube.yml) SonarQube での解析
- [ci/azure-pipelines/template.job.checkEncoding.yml](ci/azure-pipelines/template.job.checkEncoding.yml) 文字コードの確認
- [ci/azure-pipelines/template.job.cppcheck.yml](ci/azure-pipelines/template.job.cppcheck.yml) cppcheck の実行
- [ci/azure-pipelines/template.job.doxygen.yml](ci/azure-pipelines/template.job.doxygen.yml) doxygen の実行
Expand All @@ -70,6 +71,7 @@ https://azure.microsoft.com/ja-jp/services/devops/pipelines/ にアクセスし
| JOB 名 | 説明 | job を定義する template |
----|----|----
|VS2017 | サクラエディタのビルドを行う | [ci/azure-pipelines/template.job.build-unittest.yml](ci/azure-pipelines/template.job.build-unittest.yml) |
|SonarQube | SonarQube を行う | [ci/azure-pipelines/template.job.SonarQube.yml](ci/azure-pipelines/template.job.SonarQube.yml) |
berryzplus marked this conversation as resolved.
Show resolved Hide resolved
|cppcheck | cppcheck を行う | [ci/azure-pipelines/template.job.cppcheck.yml](ci/azure-pipelines/template.job.cppcheck.yml) |
|doxygen | doxygen を行う | [ci/azure-pipelines/template.job.doxygen.yml](ci/azure-pipelines/template.job.doxygen.yml) |
|checkEncoding | 文字コードのチェックを行う | [ci/azure-pipelines/template.job.checkEncoding.yml](ci/azure-pipelines/template.job.checkEncoding.yml) |
Expand Down
7 changes: 7 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ jobs:
vmImage: 'VS2017-Win2016'
displayName: VS2017

# SonarQube を行う JOB
berryzplus marked this conversation as resolved.
Show resolved Hide resolved
- template: ci/azure-pipelines/template.job.SonarQube.yml
parameters:
name: SonarQube
vmImage: 'VS2017-Win2016'
displayName: SonarQube

# Cppcheck を行う JOB
- template: ci/azure-pipelines/template.job.cppcheck.yml
parameters:
Expand Down
21 changes: 19 additions & 2 deletions build-sln.bat
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,30 @@ set LOG_FILE=msbuild-%platform%-%configuration%.log
@rem https://msdn.microsoft.com/ja-jp/library/ms171470.aspx
set LOG_OPTION=/flp:logfile=%LOG_FILE%

@echo "%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Build" %EXTRA_CMD% %LOG_OPTION%
"%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Build" %EXTRA_CMD% %LOG_OPTION%
call %~dp0build-sonar-qube-start.bat
if errorlevel 1 (
echo ERROR build %errorlevel%
exit /b 1
)

if "%SONAR_QUBE_TOKEN%" == "" (
@echo "%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Build" %EXTRA_CMD% %LOG_OPTION%
"%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Build" %EXTRA_CMD% %LOG_OPTION%
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

メモ:この2行は変更前と同じもの。行頭インデントのみ異なる。

) else (
@echo "%BUILDWRAPPER_EXE%" --out-dir %~dp0bw-output "%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Rebuild" %LOG_OPTION%
"%BUILDWRAPPER_EXE%" --out-dir %~dp0bw-output "%CMD_MSBUILD%" %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Rebuild" %LOG_OPTION%
)
if errorlevel 1 (
echo ERROR in msbuild.exe errorlevel %errorlevel%
exit /b 1
)

call %~dp0build-sonar-qube-finish.bat
if errorlevel 1 (
echo ERROR build %errorlevel%
exit /b 1
)

@echo call parse-buildlog.bat %LOG_FILE%
call parse-buildlog.bat %LOG_FILE%
if errorlevel 1 (
Expand Down
23 changes: 23 additions & 0 deletions build-sonar-qube-env.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@rem to ensure hide variable SONAR_QUBE_TOKEN
@echo off
if "%SONAR_QUBE_TOKEN%" == "" (
@echo SONAR_QUBE_TOKEN is not defined. Abort without building.
exit /b 0
)

if "%SONAR_QUBE_ORG%" == "" (
@echo SONAR_QUBE_ORG is not defined. Abort without building.
exit /b 0
)

if "%SONAR_QUBE_PROJECT%" == "" (
@echo SONAR_QUBE_PROJECT is not defined. Abort without building.
exit /b 0
)

set URL_BUILDWRAPPER_ZIP=https://sonarcloud.io/static/cpp/build-wrapper-win-x86.zip
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

メモ:x86版がどうのこうの、ってのはコレの話ね。

set BUILDWRAPPER_ZIP=.\build-wrapper-win-x86.zip
set BUILDWRAPPER_DIR=build-wrapper-win-x86
set BUILDWRAPPER_EXE=%BUILDWRAPPER_DIR%\build-wrapper-win-x86\build-wrapper-win-x86-64.exe
set SonarScanner_MSBUILD=C:\ProgramData\chocolatey\bin\SonarScanner.MSBuild.exe
exit /b 0
18 changes: 18 additions & 0 deletions build-sonar-qube-finish.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
call %~dp0build-sonar-qube-env.bat
if "%SonarScanner_MSBUILD%" == "" (
echo do nothing
exit /b 0
)
if "%SONAR_QUBE_TOKEN%" == "" (
echo do nothing
exit /b 0
)

@rem to ensure hide variable SONAR_QUBE_TOKEN
@echo off
"%SonarScanner_MSBUILD%" end /d:sonar.login="%SONAR_QUBE_TOKEN%"
if errorlevel 1 (
echo ERROR in %SonarScanner_MSBUILD% end errorlevel %errorlevel%
exit /b 1
)
exit /b 0
34 changes: 34 additions & 0 deletions build-sonar-qube-start.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@rem to ensure hide variable SONAR_QUBE_TOKEN
call %~dp0build-sonar-qube-env.bat
if "%SonarScanner_MSBUILD%" == "" (
echo do nothing
exit /b 0
)
if "%SONAR_QUBE_TOKEN%" == "" (
echo do nothing
exit /b 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

メモ:SonarQube実行でない場合はしれっと抜ける仕組みになっている。

)

curl %URL_BUILDWRAPPER_ZIP% -o %BUILDWRAPPER_ZIP%
if errorlevel 1 (
echo ERROR in download from %URL_BUILDWRAPPER_ZIP%
exit /b 1
)
call %~dp0tools\zip\unzip.bat %BUILDWRAPPER_ZIP% %BUILDWRAPPER_DIR%

if exist .sonarqube rmdir /s /q .sonarqube

@rem to ensure hide variable SONAR_QUBE_TOKEN
@echo off
"%SonarScanner_MSBUILD%" begin ^
/k:"%SONAR_QUBE_PROJECT%" ^
/o:"%SONAR_QUBE_ORG%" ^
/d:sonar.cfamily.build-wrapper-output=%~dp0bw-output ^
/d:sonar.sourceEncoding=UTF-8 ^
/d:sonar.host.url="https://sonarcloud.io" ^
/d:sonar.login="%SONAR_QUBE_TOKEN%"
if errorlevel 1 (
echo ERROR in %SonarScanner_MSBUILD% begin errorlevel %errorlevel%
exit /b 1
)
exit /b 0
Loading