Fortuna Entwickler Blog

Hier wird Ihnen geholfen

SonarCloud - Master Solution - Analyse

Für die Master Solution braucht es einen anderen Ablauf. Damit es manuell funktioniert müssen folgende Schritte erfolgen.

Vorbereitung

Bevor die eigentliche Analyse gestartet werden kann, müssen verschiedene Schritte vollzogen werden.

1. Herunterladen des Sonarscanners. 

Damit die Zeilen von Code analysiert werden können, brauchen wir den Client von SonarCloud dazu.

Dort sollte die net4.6 Version genommen werden, aufgrund des Mixes von C++ und C# in der Solution. 

Die .zip Datei nach dem Entpacken an einen geeigneten Platz legen (z.B. unter C:\\SonarCloud). Im späteren Schritt, werden wir den Pfad noch brauchen.

2. Herunterladen des Buildwrappers

Damit die Logdateien während der Analyse gefüllt werden, wird der Buildwrapper von SonarCloud benötigt.

Die .zip Datei nach dem Entpacken an einen geeigneten Platz legen (z.B. unter C:\\SonarCloud). Im späteren Schritt, werden wir den Pfad noch brauchen.

3. Setzen der Umgebungsvariablen

Damit verschiedene Einstellungen direkt gefunden werden müssen folgende Befehle in einer Powershell Konsole ausgeführt werden:

[Environment]::SetEnvironmentVariable("SONAR_SCANNER_OPTS", "-Dhttps.proxyHost=10.98.98.222 -Dhttps.proxyPort=8080",[System.EnvironmentVariableTarget]::Machine)
Kontrolliert werden kann dies mit dem Befehl:

[Environment]::GetEnvironmentVariable("SONAR_SCANNER_OPTS", [System.EnvironmentVariableTarget]::Machine)

Setzen der Path Variable mit allen vorherigen Pfaden (anpassen der Pfade beachten):

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\SonarCloud\build-wrapper-win-x86" + ";C:\SonarCloud\sonar-scanner-msbuild-5.3.1.36242-net46",[System.EnvironmentVariableTarget]::Machine)

Kontrolliert werden kann dies mit diesem Befehl:

[Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine)

3. Herunterladen des aktuellen Java JDKs

Für den Scanner wird Java mindestens in der Version 11 benötigt.


Analyse - Routine

Token können innerhalb der SonarCloud Oberfläche als Administrator erzeugt werden:



Zum Starten der Analyse muss zuerst auf der Kommandozeile in das Verzeichnis navigiert werden in der die Master Solution liegt. Folgend werden die Befehle ausgeführt:

SonarScanner.MSBuild.exe begin /k:"Master_MyLife" /o:"mylife-leben" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.login="bfe291ef26f056234f4782e8660fbefe541fc12f" /d:sonar.cfamily.build-wrapper-output="build_wrapper_output_directory"


build-wrapper-win-x86-64.exe --out-dir build_wrapper_output_directory MSBuild.exe Master.sln /t:Rebuild /p:Configuration=Release /p:Platform=x64
SonarScanner.MSBuild.exe end /d:sonar.login="bfe291ef26f056234f4782e8660fbefe541fc12f" 

Scripte auf WEB3

Auf WEB3 liegen eine Reihe von Scripten, die teils manuell, teils automatisiert ausgeführt werden: 

Script: IAD_FFS_copy_and_purge_old.ps1
Datum: 14.03.2013
Autor: Unbekannt
Letzte Änderung: 14.03.2013
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Jeden Tag um 06:00 Uhr ausführen.

Script: IAD_FFS_get_from_FTP_Server.ps1
Datum: 25.04.2013
Autor: Unbekannt
Letzte Änderung: 25.04.2013
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Jeden Tag um 05:30 Uhr ausführen.

Script: IAD_Funds_copy_and_move.ps1
Datum: 06.10.2009
Autor: Unbekannt
Letzte Änderung: 06.10.2009
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Jeden Tag um 17:50 Uhr ausführen.

Script: IAD_PRICES_move.ps1
Datum: 16.01.2013
Autor: Unbekannt
Letzte Änderung: 16.01.2013
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Jeden Tag ab 08:18 Uhr und dann stündlich 12 Stunden lang ausführen.

Script: Import_Antragsdateien_from_FTP.ps1
Datum: 25.11.2010
Autor: Unbekannt
Letzte Änderung: 25.11.2010
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Montag bis Freitag ab 07:10 Uhr und dann stündlich 12 Stunden lang ausführen.

Script: Statusdateien_copy_and_move.ps1
Datum: 26.04.2013
Autor: Unbekannt
Letzte Änderung: 26.04.2013
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Montag bis Freitag um 06:55 Uhr ausführen.

Script: Tecis_copy_and_move_files.ps1
Datum: 26.04.2013
Autor: Unbekannt
Letzte Änderung: 26.04.2013
Ausführung: manuell / Scheduler / sonstige
Aufgabe: Täglich um 17:30 Uhr ausführen.

Diese Scripte liegen nun nach einer Überarbeitung komplett auch auf dem TFS unter /Fortuna/Scripte

Automatisierte Bereinigung alter Builds

Mit jedem Checkin werden auf dem Buildserver ein bis mehrere Buildvorgänge angestossen. In diesem Zuge werden alle SOlution-Daten aus dem TFS kopiert, ein Build durchgeführt und die Buildergebnisse zur Verfügung gestellt. Üblicherweise werden diese Dateien gar nicht mehr gebraucht, aber das System hält sie erst einmal vor.

Eine automatische spätere Löschung ist nicht vorgesehen.

Da hierdurch nach und nach der Speicherplatz 'volläuft' habe ich ein kleines PowerShell Script entwickelt, welches mittels Scheduled Task periodisch aufräumt:
Unter C:\Program Files\Scripte liegt VerzeichnisLeeren.ps1:

param 
( 
    [string]$Folder = "E:\Symbols", 
    [int]$Days = 14
)

$Heute = Get-Date;

Get-Childitem $Folder -recurse | Where-Object {($Heute - $_.LastWriteTime).Days -gt $Days} | Remove-Item -Recurse;

Das Script ist denkbar einfach aufgebaut: man kann ein Verzeichnis übergeben und einen Zeitraum in Tagen. Im Verzeichnis werden alle Dateien und Ordner gelöscht, die älter sind, als der angegebene Zeitraum.

Das Script wird über Geplante Aufgaben zurzeit jeden Montag morgen um 5 Uhr ausgeführt. Nach Rücksprache mit der Administration ist dies ein geeigneter Zeitpunkt, zu dem es zu keinen Problemen mit eventuellen anderen Tätigkeiten kommen sollte.