Email jenkins中的FSTrigger触发器不正确
我在outlook中设置了一条规则 使用到达后应用此规则Email jenkins中的FSTrigger触发器不正确,email,jenkins,triggers,outlook,continuous-integration,Email,Jenkins,Triggers,Outlook,Continuous Integration,我在outlook中设置了一条规则 使用到达后应用此规则 “xyz” 在主题中并将其移动到 “构建我” 文件夹“buildme”作为数据文件创建于 C:\Users\myid\AppData\Local\Microsoft\Outlook\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 在项目下的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将在“3/24/2016 11:24 AM”更新 上午11:55,生成被正确触发 然而,在下午12:55,另一个构建被意外地再次触发,尽管没有发送新的电子邮件。这种情况每小时都在发生
我做错了什么?Outlook可能以某种方式触及了该文件,修改了导致FSTrigger启动构建的时间戳 出于健壮性考虑,我建议不要依赖于监视outlook文件夹文件的更改,因为它可能会意外更改。而是修改规则以直接触发jenkins服务器上的构建作业 即伪代码化:
如果主题包含关键字访问jenkinsurl,则启动构建
如何基于outlook规则运行脚本似乎是一个复杂的问题
解释了如何通过jenkins url上的http请求触发构建的信息
您甚至可以在将来扩展它,将参数从电子邮件传递到构建中,因为这些参数也可以通过url访问进行设置。有关此部分的更多信息,启动带有参数的生成时,Outlook可能以某种方式触及了文件,修改了导致FSTrigger启动生成的时间戳
出于健壮性考虑,我建议不要依赖于监视outlook文件夹文件的更改,因为它可能会意外更改。而是修改规则以直接触发jenkins服务器上的构建作业
即伪代码化:如果主题包含关键字访问jenkinsurl,则启动构建
如何基于outlook规则运行脚本似乎是一个复杂的问题
解释了如何通过jenkins url上的http请求触发构建的信息
您甚至可以在将来扩展它,将参数从电子邮件传递到构建中,因为这些参数也可以通过url访问进行设置。有关此部分的更多信息,请使用参数启动构建我将规则更改为:
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修改的。我将规则更改为:
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修改的。谢谢Dominik。我试图发出HTTP请求,但它似乎没有触发构建。以下是我所做的:
在VBA脚本中,添加代码:code
Set-objHTTP=CreateObject(“Microsoft.XMLHTTP”)URL=”“objHTTP.Open“POST”、URL、False-objHTTP.setRequestHeader“User-Agent”、“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0)”objHTTP.Send(“”)。执行此代码后,未触发任何生成。请先将url放入Firefox中,验证url是否正确。东西需要正确的URL转义(firefox会自动执行此操作),您只需要在构建选项中设置它。将“56.xxx.xxx.xxx:8080/job/testenv/build?token=go”更改为“56.xxx.xxx.xxx:8080/job/testenv/buildWithParameters?token=go”后,它就可以工作了。我试图发出HTTP请求,但它似乎没有触发构建。以下是我所做的:
在VBA脚本中,添加代码:code
Set-objHTTP=CreateObject(“Microsoft.XMLHTTP”)URL=”“objHTTP.Open“POST”、URL、False-objHTTP.setRequestHeader“User-Agent”、“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0)”objHTTP.Send(“”)。执行此代码后,未触发任何生成。请先将url放入Firefox中,验证url是否正确。这些东西需要正确地进行URL转义(firefox会自动执行此操作),您只需要在构建选项中设置它。将“56.xxx.xxx.xxx:8080/job/testenv/build?token=go”更改为“56.xxx.xxx.xxx:8080/job/testenv/buildWithParameters?token=go”后,它就可以工作了