Jenkins bietet durch die verschiedenen Plugins jede menge Möglichkeiten um Programmartefakte auf Testserver bereitszustellen. Beim Bereistellen von Programmartefakten auf Windows Betriebssystemen, wie z.B. Windows Server, unterscheide ich gerne zwei genrelle Varainten. Wenn man lediglich Programmartefakte auf einem Testserver kopieren möchte, kann man das einfach über das Publish Over CIFS Plugin erledigen. Hierbei besteht aber leider keine Möglichkeit zusätzliche Befehle auf dem Testserver auszuführen. Es besteht lediglich die Möglichkeit die Programmartefakten zu kopieren, mehr nicht.
Bei der zweiten Variante ist das Kopieren von Programmdaten und das Ausführen von Befehlen möglich. Das benötigt man z.B. wenn man Webanwendungen in einen Internet Information Server bereitstellen möchte. Hierbei ist man gezwungen den IIS-Dienst auf dem Testserver neuzustarten, damit die neuen Programmartefakte aktiviert werden. Wenn man den Jenkins Server ebenfalls auf einem Windows Server System betreibt, kann man direkt die lokale PowerShell des Bestriebsystems verwenden. Hierzu nutzt man innerhalb einen Build-Jobs einfach die Möglichkeit Build-Schritt eine Windows Batch-Datei ausführen:
Wenn man aber den Jenkins Server auf einem Linux Betriebssystem nutzt, gibt es dort keine Power Shell und man muss sich einer anderen Methode bedienen.
Ich habe mich lange umgeschaut und nur eine wirklich verlässlich nutzbare Möglichkeit gefunden. Man muss auf dem Windows Testsystem SSH installieren und konfigurieren. Dann kann man auf der Jenkins Seite die eingebauten SSH Methoden einfach nutzen um die Programmartefakte zu kopieren und Prozesse auf dem Testserver auszuführen.
Als SSH Implementierungen auf Windows Betriebsystemen findet man einige Projekte im Web. Ich habe mich mit OpenSSH und CopSSH auf Windows beschäftigt. OpenSSH ist realtiv schwierig zu konfigurieren, bietet aber einen uneingeschränkten Funktionsumfang. CopSSH hingegen ist wirklich sehr einfach zu konfigurieren, hat aber die Einschränkung nur einen User zu unterstützen. Das muss man selbst entscheiden welche der beiden Varianten für das eigene Vorhaben besser passt.