Wenn man mit Jenkins Programmartefakte auf einem Testserver bereitstellen muss, der ein Windows Betriebssystem hat, kann man das Publish Over CIFS Plugin verwenden. Hierbei muss man beachten, dass das Plugin nur einfaches Kopieren von Programmartefakten vom Jenkins Server auf den eigentlichen Testserver unterstützt.
Im ersten Schritt konfiguriert man das Netzlaufwerk auf dem Testserver. Den gewünschten Ordner einfach mit der rechten Maustaste anklicken und in der Reiterkarte Freigabe das Netzlaufwerk einrichten. Zusätzlich noch auf der Reiterkarte Sicherheit einen Benutzer einrichten, mit dem der Jenkins Server auf diesem Netzlaufwerk Schreibrechte hat. Schlussendlich darf man nicht die Firewall auf dem Testserver vergessen und ich teste gerne ob ich von meinem Client PC mich mit den eingerichteten Zugangsdaten verbinden kann.
Weiter geht es mit der Installation des Publish Over CIFS Plugin auf dem Jenkins Server. Hierzu in das Menü Jenkins verwalten/Plugins verwalten wechseln und auf der Reiterkarte verfügbar das Plugin auswählen. Anschliessend Jenkins neustarten und damit ist die Installation des Plugins abgeschlossen.
Bevor wir das Plugin nutzen können, müssen wir noch ein paar Konfigurationsschritte ausführen. Hierfür wechseln wir in das Menü Jenkins verwalten/System konfigurieren und scrollen auf der Seite bis zum Abschnitt Publish over CIFS und betätigen den Button Hinzufügen:
In diesem Dialog muss man nun den Namen, Hostnamen und die Zugangsdaten für das eingerichtete Netzlaufwerk angeben. Man kann mit dem Button Test Configuration überprüfen ob die eingegeben Daten stimmen und die Kommunikation zwischen dem Jenkins und dem Testserver funktioniert.
Nun endlich können wir den Jenkins Job konfigurieren und einen Build-Schritt hinzufügen:
Im folgenden Dialog wählt man nun das gewünschte Netzlaufwerk aus und wählt die Source files aus:
In diesem Beispiel nehme ich einfach alle Dateien in alle Unterordnern des Source Files. Das drückt man mit der Notation **/* aus. Jenkins geht bei dieser Variante her und übernimmt die Vollständige Struktur der eingecheckten Programmartefakte und kopiert diese direkt in das Netzlaufwerk hinein. Jenkins überschreibt hierbei immer alle Dateien im Netzlaufwerk, die dort bereits vorhanden sind.