FSTrigger在jenkins中触发错误

时间:2016-03-24 18:59:24

标签: email jenkins triggers outlook continuous-integration

我在展望中设定了一条规则

  

到达后应用此规则    " XYZ"    在主题中并将其移至   " buildme"

文件夹" buildme"在

创建为数据文件
  

C:\ Users \用户身份识别码\应用程序数据\本地\微软\展望\ builme.pst

在项目的Jenkin中,我创建了构建触发器,如下所示:

  

[FSTrigger] - 监控文件
文件路径:   C:\ Users \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst
  时间表:55 * * * 1-5

我发送了一封电子邮件,其中包含" xyz"在主题行。 然后电子邮件被转移到" buildme"文件夹,因此文件C:\ Users \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst得到更新,比如在" 2016年3月24日上午11:24"。

上午11:55,构建被正确触发。

然而,在下午12:55,意外地再次触发了另一个版本,尽管没有发送新电子邮件。这种情况每小时都会发生。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

Outlook可能以某种方式触及了该文件,修改了一些导致FSTrigger启动构建的时间戳。

为了健壮,我建议不要依赖于监视outlook文件夹文件的变化,因为它可能会意外地改变。而是修改规则以直接触发jenkins服务器上的构建作业。

即。伪医疗:IF subject CONTAINS keyword ACCESS jenkinsurl_that_starts_build

如何基于Outlook规则运行脚本似乎已经布局here和 有关如何通过jenkins网址上的http请求触发构建的信息,请参阅here

您甚至可以在将来扩展它以将参数从您的电子邮件传递到您的构建,因为这些也可以通过URL访问进行设置。有关此here的更多信息,使用参数启动构建

答案 1 :(得分:1)

我将规则更改为:

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

和VBA脚本:

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

这个VBA脚本会将一行写入testtest.txt。

在Jenkins中,创建一个构建触发器:

[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

在主题中发送包含xyz的电子邮件,将成功触发构建,并且在未收到电子邮件时未触发构建。

作为旁注,看起来FSTrigger修改了文件的时间戳,而不是Outlook或Windows。