2016-03-24 11 views
0

ich eine Regel im Ausblick gesetzt haben, dieFSTrigger löst falsch in jenkins

gilt diese Regel kommt nach
mit „xyz“ im Fach
und an die „BuildMe“ bewegen

Ordner "BuildMe" wurde als eine Datendatei erstellt bei

C: \ Users \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst

In Jenkin im Rahmen des Projekts, habe ich Build-Trigger wie folgt:

[FSTrigger] - Monitor-Dateien
Dateipfad: C: \ Benutzer \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst
Zeitplan: 55 * * * 1-5

ich eine E-Mail mit "xyz" in der Betreffzeile gesendet. Die E-Mail wurde dann in den "buildme" -Ordner verschoben, daher wird die Datei C: \ Benutzer \ myid \ AppData \ Local \ Microsoft \ Outlook \ Buildme.pst aktualisiert, beispielsweise um "24.03.2016 11:24 Uhr ".

Um 11:55 Uhr wurde der Build korrekt ausgelöst.

Um 12:55 Uhr wurde jedoch erneut unerwartet ein anderer Build ausgelöst, obwohl keine neue E-Mail gesendet wurde. Das geht für jede Stunde weiter.

Was habe ich falsch gemacht?

Antwort

1

Outlook hat wahrscheinlich die Datei irgendwie berührt, indem sie einen Zeitstempel geändert hat, der FSTrigger veranlasst, den Build zu starten.

Aus Gründen der Robustheit schlage ich vor, nicht auf die Outlook-Ordner-Datei für Änderungen zu überwachen, da es sich unerwartet ändern kann. Ändern Sie stattdessen Ihre Regeln, um den Build-Job auf dem jenkins-Server direkt auszulösen.

I.e. pseudocodeish: IF subject CONTAINS keyword ACCESS jenkinsurl_that_starts_build

Wie ein Skript auf Outlook-Regeln basierend laufen scheint here und Informationen über layed geführt werden, wie ein Build über HTTP-Anforderung auf einem jenkins url auszulösen here erklärt

Sie könnten es sogar erweitern in der Zukunft, um Parameter von Ihrer E-Mail an Ihr Build zu übergeben, da diese auch über den URL-Zugang eingestellt werden können. Weitere Informationen zu diesem here Abschnitt einen Build mit Parametern starten

+0

Danke Dominik. Ich habe versucht, eine HTTP-Anfrage zu senden, aber es scheint keinen Build auszulösen. Hier ist, was ich getan habe:
Fügen Sie im VBA-Skript den Code: 'code' Set objHTTP = CreateObject (" Microsoft.XMLHTTP ") URL =" http://56.xxx.xxx.xxx:8080/job/ testenv/build? token = gehen " objHTTP.Open" POST ", URL, Falsch objHTTP.setRequestHeader" Benutzer-Agent "," Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.0) " objHTTP.Send (" "). Nach der Ausführung dieses Codes wurde kein Build ausgelöst. – Heinz

+0

Versuchen Sie zuerst zu verifizieren, dass die URL tatsächlich korrekt ist, indem Sie sie z. B. in Firefox einfügen. Stuff muss richtig urlescaped sein (firefox macht das automatisch), Token brauchst du nur, wenn du es in deinen Buildoptionen eingestellt hast. –

+1

Nachdem "56.xxx.xxx.xxx:8080/job/testenv/build?token=go" in "56.xxx.xxx.xxx:8080/job/testenv/buildWithParameters?token=go" geändert wurde, funktioniert es – Heinz

1

änderte ich die Regel:

apply this rule after arrives 
with "xyz" in the subject 
run projetcs.ThisOutlookSession.WriteStringToFile 

und das VBA-Skript:

Sub WriteStringToFile1(MyMail As MailItem) 
    Const FILEPATH = "c:\buildtrigger\testtest.txt" 

    Dim strSubject As String 
    Dim strSender As String 
    Dim strText As String 
    Dim strID As String 
    Dim objMail As Outlook.MailItem 

    strID = MyMail.EntryID 
    Set objMail = Application.Session.GetItemFromID(strID) 

    strSubject = objMail.Subject 
    strSender = objMail.SenderName 


    Open FILEPATH For Output As 1 
    Print #1, "SET XYZ = " & strSubject & ";" & strSender & "--" & Now 
    Close #1 

End Sub 

diese VBA-Skript wird eine Zeile schreiben testtest.txt.

In Jenkins, erstellen einen Build-Trigger:

[FSTrigger] - Monitor folder 
Path = c:\buildtrigger 
Includes = testtest.txt 
Exclude check lastModification date = true 
Exclude check content = false 
Exclude check fewer or more files = true 
schedule: * * * * 1-5 

E-Mail senden mit xyz in das Thema wird ein Build erfolgreich ausgelöst werden, und kein Build ausgelöst, wenn keine E-Mail empfangen wurde.

Als eine Randnotiz sieht es aus wie der Zeitstempel der Datei von FSTrigger geändert wird, nicht von Outlook oder Windows.

Verwandte Themen