Ich konvertiere unsere CI-Plattform von CruiseControl zu Jenkins und kann scheinbar nichts herausfinden, was relativ einfach zu sein scheint (Disclaimer - ich bin kein CI oder baue Automatisierungsexperte, aber das wurde weggeworfen in meinen Schoß und ich finde es interessant)
In CruiseControl kann ich Variablen wie folgt deklarieren:
%Vor%Verwenden Sie sie dann als Teil einer MSBuild-Aufgabe
%Vor%Wenn sich die Stamm- oder IIS-Verzeichnisse ändern, können sie problemlos auf alle Projekte gleichzeitig angewendet werden. Wir haben ~ 60 Projekte eingerichtet, so dass dieses Projekt nach Projekt sehr zeitaufwendig wäre. Wenn Sie dies zu Jenkins migrieren, sehen die MSBuild-Befehlszeilenargumente nun so aus (Teilstichprobe, enthält aber auch, was relevant ist):
%Vor%Das IIS-Verzeichnis ist fest codiert. Ich brauche das, um etwas mehr so zu sein:
%Vor%Gibt es eine Möglichkeit, das zu tun? Ich habe das Konfigurations-Slicing-Plugin ausprobiert, was zwar nützlich ist, aber nicht zu dem passt, was ich sehe
Für globale Variablen benötigen Sie das EnvInject-Plug-in . Damit können Sie (unter anderem) Variablen auf globaler (Knoten-) Ebene, auf Job-Ebene oder als Schritt einrichten. Sie können Variablen direkt oder aus einer Eigenschaftendatei oder aus Skripten setzen.
Einmal festgelegt, sind die Variablen als Umgebungsvariablen für den Rest von Jenkins und seine Schritte (innerhalb des Gültigkeitsbereichs) verfügbar.
Beim Übergeben von Argumenten an MSBuild gibt es beim Konfigurieren eines MSBuild-Schritts eine Option zum Übergeben von "Befehlszeilenargumenten" im Format /p:Param=Value.
Der "Wert" könnte eine Umgebungsvariable sein. In einer Windows-Umgebung würden Sie als% myvar%
darauf verweisen Wenn Sie also ein globales GLOBAL_IIS_DIR=C:\path\to\IIS
mit EnvInject konfigurieren, können Sie es in der Befehlszeile mit /p:IIS_DIR=%GLOBAL_IIS_DIR%
Sie können dies mit der eingebauten Jenkins-Funktionalität tun:
Dann müssen Sie Ihre Variable erweitern. Dies hängt davon ab, wo Sie es verwenden würden.
Zum Beispiel: %MSBuild%
und %IIS_DIR%
für den Build-Schritt "Windows-Batch-Befehl ausführen". Andere Build-Schritte (und Plugins) können es anders verwenden.
Tags und Links jenkins msbuild build-automation