2016-05-26 9 views
1

Gibt es eine Möglichkeit, einen jenkins Job mit C# -Code erstellen?Erstellen Sie einen Jenkins-Job programmgesteuert mit C# .NET

  • Ich habe die Konfigurationsdatei.
  • Ich habe die createItem URL.

Wie Sie diese verwenden, um einen jenkins Job zu erstellen?

+0

Was haben Sie versucht, und wo sind Sie stecken geblieben? Haben Sie Fehlermeldungen? Bitte zeigen Sie den Code an, den Sie bisher geschrieben haben. –

+0

Ich hatte ein Anfrageobjekt von HttpWebRequest der URL erstellt (htttp: //testjenkins.com/createItem? Name = FIRSTJOB) und die Methode auf "POST" und ContentType auf "application/xml" gesetzt. Ich erhalte einen fehlerhaften Anforderungsfehler. Ich habe auch alle config.xml Bytes in die Anfrage geschrieben. –

Antwort

1

Unterhalb der Quelle ist jenkins Job mit C# hinzuzufügen: uri: ist JENKINS URL (http://testjenkins.com/createItem?name=J1) J1: ist der Jobname Dateiname: wird der vollständige Pfad des config.xml für den Job

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 
     string mergedCredentials = string.Format("{0}:{1}", "username", "password"); 
     byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials); 
     string base64Credentials = Convert.ToBase64String(byteCredentials); 
     request.Headers.Add("Authorization", "Basic " + base64Credentials); 
     request.Method = "POST"; 
     request.ContentType = "application/xml"; 

     StreamReader reader = new StreamReader(fileName); 
     string ret = reader.ReadToEnd(); 
     reader.Close(); 
     string postData = ret; 
     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     request.ContentLength = byteArray.Length; 

     Stream dataStream = request.GetRequestStream(); 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 

     HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
     string result = string.Empty; 
     using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
     { 
      result = reader.ReadToEnd(); 
     } 
Verwandte Themen