Durchsuchen nach
Category: Jenkins

Globale Buildtimeout in Jenkins festlegen

Globale Buildtimeout in Jenkins festlegen

Man kann mittlerweile eine globale Buildtimeout in Jenkins festlegen. Dies ist eine nützliche Eigenschaft wenn man öfters auch mal Jobs hatte, die übers Wochenende länger liefen als sie sollten. In diesem Post möchte ich kurz zeigen wie man diese festlegt. Eine Buildtimeout ist die Zeit, die ein Job höchstens laufen darf. Wenn diese Zeit überschritten wird, dann soll der Job in der Regel fehlschlagen. Um eine globale Buildtimeout festzulegen, geht man erstmal in die Systemkonfiguration (Jenkins verwalten -> System konfigurieren):…

Weiterlesen Weiterlesen

Robot Plugin in Jenkins installieren

Robot Plugin in Jenkins installieren

Das Robot Plugin dient dazu, Tests, die mit dem Robot Framework erstellt wurden, in Jenkins zu integrieren. In diesem Post möchte ich kurz zeigen, wie man das Plugin unter Jenkins installiert. Wenn man in Jenkins angemeldet ist, klickt man den Link auf der linken Seite Jenkins verwalten und klickt anschließend den Button Plugins verwalten. Hat man die Seite Plugins verwalten geöffnet, wechselt man in Tab Verfügbar. Dieser Tab listet alle verfügbaren Plugins auf. In der Suchmaske darüber gibt man anschließend…

Weiterlesen Weiterlesen

Jenkins – Job erst starten wenn 4 Agenten frei sind

Jenkins – Job erst starten wenn 4 Agenten frei sind

Vor kurzem gab es eine interessante Aufgabe: Die Aufgabe war, erst dann einen Job zu starten, wenn eine bestimmte Anzahl an Agenten mit einem bestimmten Label frei sind. Beispiel: Man möchte nur dann einen Job starten, wenn 4 Agenten mit dem Label generic frei sind. Meine Lösung hierzu wäre diese gewesen: Man erstellt einen neuen Job, der ein Groovy Skript ausführt (Execute system Groovy script). Dieses Skript geht alle Agenten durch, prüft, ob die ein bestimmtes Label haben und wenn…

Weiterlesen Weiterlesen

Dependency Graph Viewer Plugin einrichten

Dependency Graph Viewer Plugin einrichten

Wenn es mal unübersichtlich mit den Jobs in Jenkins wird, kann man mit dem Dependency Graph Viewer Plugin ein wenig Licht in die Sache bringen. Vor allem dann, wenn es darum geht zu sehen, welcher Job welchen anderen Job startet. Wenn z.B. der Job Bauen den Job Unittests aufruft, lässt sich das dem Dependency Graph Viewer Plugin gut visualisieren. Zuerst muss man natürlich das Plugin in Jenkins installieren. Ich gehe jetzt davon aus, dass klar ist wie man in Jenkins…

Weiterlesen Weiterlesen

ERROR: [WS-CLEANUP] Cannot delete workspace: Remote call on … failed

ERROR: [WS-CLEANUP] Cannot delete workspace: Remote call on … failed

Vor kurzem hatte ich einen Job in Jenkins, der die Einstellung hatte den Arbeitsbereich auf einem Jenkins-Slave zu löschen bevor der Job fortführen sollte: Auf einmal bekam ich jedoch regelmäßig Fehlermeldungen dieser Art: [WS-CLEANUP] Deleting project workspace… [WS-CLEANUP] Deferred wipeout is used… ERROR: [WS-CLEANUP] Cannot delete workspace: Remote call on … failed ERROR: Cannot delete workspace: Remote call on … failed Die Lösung in diesem Fall war die: Ich musste den Jenkins-Slave erst einmal richtig trennen um ihn anschließend wieder…

Weiterlesen Weiterlesen

Caused by: java.lang.NoClassDefFoundError: com/cloudbees/hudson/plugins/folder/properties/FolderCredentialsProvider

Caused by: java.lang.NoClassDefFoundError: com/cloudbees/hudson/plugins/folder/properties/FolderCredentialsProvider

Ich hatte kürzlich Jenkins frisch aufgesetzt und die empfohlenen Plugins installiert. Als ich ein Multibranch Pipeline Projekt erstellt hatte und konfigurieren wollte, ging nichts mehr. Ich konnte nichts konfigurieren und bekam zudem diese Fehlermeldung zu Gesicht: org.apache.commons.jelly.JellyTagException: jar:file:/root/.jenkins/war/WEB-INF/lib/jenkins-core-2.176-SNAPSHOT.jar!/lib/hudson/actions.jelly:39:70: <st:include> com/cloudbees/hudson/plugins/folder/properties/FolderCredentialsProvider at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)…Caused by: java.lang.NoClassDefFoundError: com/cloudbees/hudson/plugins/folder/properties/FolderCredentialsProvider at java.lang.Class.getDeclaringClass0(Native Method) at java.lang.Class.getDeclaringClass(Class.java:1235) at java.lang.Class.getEnclosingClass(Class.java:1277) at com.cloudbees.plugins.credentials.CredentialsStore.<init>(CredentialsStore.java:102)…Caused: javax.servlet.ServletException at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:119) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:146) at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747) Die wichtige Fehlermeldung ist hier fett hervorgehoben. Ursache für…

Weiterlesen Weiterlesen

Erste Schritte mit BitBucket und Webhooks

Erste Schritte mit BitBucket und Webhooks

In BitBucket lassen sich sogenannte Webhooks für ein Repository erstellen. Diese Webhooks melden dann dem CI Server, wenn sich was im Repository geändert hat. Ich habe meine ersten Schritte mit BitBucket und den Webhooks gemacht. Diese möchte ich hier aufschreiben. Ein Webhook in BitBucket zu erstellen, sollte recht einfach sein. Als erstes muss man in die Einstellungen von dem gewünschten Repository gehen, in dem man die Webhooks einrichten möchte: Dort müsste ein Button “Add Webhook” auftauchen: Wenn man auf “Add…

Weiterlesen Weiterlesen

Jenkins Pipeline: Werte von einem Job zum anderen übergeben

Jenkins Pipeline: Werte von einem Job zum anderen übergeben

Manchmal möchte man Werte zwischen zwei Jobs weiter geben. Dies kann man mit Jenkins Pipeline recht einfach bewerkstelligen. Dazu müssen beide Jobs richtig konfiguriert sein. Der erste Job muss die Möglichkeit haben einen zweiten Job mit Parametern zu starten. Wie hier in diesem Jenkinsfile: pipeline { agent any stages { stage(“Build”) { steps { sh “echo First job” } } stage(“Trigger”) { steps { build job: ‘Pipe 2’, parameters: [string(name: ‘VAR2’, value: “somevalue2”)], wait: false } } }} Der zweite…

Weiterlesen Weiterlesen

Der Jenkinsslave und die Javaversion

Der Jenkinsslave und die Javaversion

Wie sich mal wieder herausgestellt hat, ist die Javaversion auf einer Windows-Slave-Maschine von großer Bedeutung. Auf einer Windows-Slave-Maschine wollte ich eine Batch-Datei ausführen, die wiederum ein Powershell-Skript aufgerufen hat. Während des Durchlaufs bekam ich jedoch diese Fehlermeldung in Jenkins: Import-Module : Could not load file or assembly ‘file:///C:\Program Files\WindowsPowerShell\Modules\Msonline\1.1.183.17\Microsoft.Online.Administration.Automation.PSModule.dll’ or one of its dependencies. An attempt was made to load a program with an incorrect format. Das seltsame daran war jedoch, dass dieses Skript in der Eingabeaufforderung von Windows auf…

Weiterlesen Weiterlesen

Jenkins master – Zu wenig Speicherplatz

Jenkins master – Zu wenig Speicherplatz

Mit der Zeit kann es vorkommen, dass der frei verfügbare Speicherplatz auf dem Server auf dem Jenkins läuft, immer kleiner wird. Das kann unter Anderem auch an Jenkins selbst liegen. In diesem Post möchte ich ein paar Hilfestellungen geben, wie man dieses Problem lösen und auch vorbeugen kann. Ich werde in diesem Post von meiner Jenkins Installation ausgehen, die auf einem Ubuntu-Server installiert ist. Auf anderen Linux- oder Windows-Servern muss man die vorgestellten Strategien jedoch anpassen. Speicherhungrige Jobs finden Auf…

Weiterlesen Weiterlesen