Jenkins bietet neben der REST Api noch weitere Methoden für Fernsteuerung. Man kann über das aufrufen von URLs bereits Funktionen von Jenkins ausführen. Ein gutes Beispiel hierfür ist das Auslösen eines Builds via URL. Jeder Build Job von Jenkins ist über eine eindeutige URL verfügbar:
http://ci-server:8080/jenkins/job/[Jobname]
Ruft man die URL in einem Browser auf, erscheint die typische Übersichtseite des Jobs:
Wenn man nun ein Build über URL auslösen möchte, muss man die folgende URL aufrufen:
http://ci-server:8080/jenkins/job/[Jobname]/build?revision=HEAD
Mit dem Argument revision kann man die Subversion bekannte Revision verwenden. D.h. entwender nimmt man direkt die Nummer der gewünschten Revision. Z.B.:
http://ci-server:8080/jenkins/job/[Jobname]/build?revision=4
Oder man kann die Subversion Revisionsbezeichner verwenden (Auszug aus dem svnbook):
HEAD Die letzte (oder „jüngste“) Revision im Projektarchiv.
BASE Die Revisionsnummer eines Objektes in der Arbeitskopie. Falls das Objekt lokal bearbeitet wurde, bezieht sie sich auf das unmodifizierte Objekt.
COMMITTED Die letzte Revision kleiner oder gleich BASE, in der ein Objekt verändert wurde.
PREV Die Revision unmittelbar vor der letzten Revision, in der ein Objekt verändert wurde. Technisch bedeutet das COMMITTED-1.
Das Auslösen eines Builds mit einer URL funktioniert selbstverständlich nur wenn Jenkins nicht abgesichert wurde. D.h. wenn Jenkins so eingerichtet hat, dass Funktionen nur von angemeldeten Anwendern genutzt werden können, muss man vor dem Ausführen einer Funktion eine gültige Sitzung mit dem Jenkins Server etablieren.
Das Fernsteuern vom Jenkins kann hilfreich sein, wenn man z.B. einen Business Process Management System in der Entwicklung verwendet. D.h. Das Starten und Kontrollieren von Prozessen wird durch ein übergeordnetes System durchgeführt. In diesem Fall macht es sicherlich Sinn, sich etwas mehr mit der REST Api von Jenkins zu beschäfigen. Über die REST Api läst sich z.B. das Ergebnis eines Buildvogangs abfragen und somit der Erfolg einer Build-Aktion auch kontrollieren.