使用 jenkins email-ext 插件更改 jenkins 工作区并通过电子邮件附加文件

noo*_*oor 5 jenkins jenkins-plugins

我是詹金斯的新手,我想用电子邮件附件添加我的测试报告。

我在用

Email-ext
Run Code Online (Sandbox Code Playgroud)

发送电子邮件的插件。电子邮件已成功发送,但附件未发送。

我的测试报告在 eclipse 项目工作空间内生成,路径是

E:\eclipse_environment\workspace\smautomation_jenkin\assets\chromeTestReport\
Run Code Online (Sandbox Code Playgroud)

我如何使用此插件通过电子邮件附加我的测试文件?

noo*_*oor 4

我正在使用 mac,我的解决方案适用于 mac。但我认为这个概念对于所有操作系统都是相同的。

实际上,jenkin 自动从其工作区附加文件。为此不需要任何表达。例如,在我的 mac 中,jenkins 工作区是

/users/dev/.jenkins/workspace
Run Code Online (Sandbox Code Playgroud)

我在这里保存一个名为

 report.txt. 
Run Code Online (Sandbox Code Playgroud)

在 email-ext 插件的“附件”中,只需编写

report.txt
Run Code Online (Sandbox Code Playgroud)

不需要写任何其他东西。jenkins 将转到其工作区并检查“report.txt”是否存在。如果存在,则将其作为附件发送。

现在关于詹金斯工作空间的问题。

实际上詹金斯有自己的工作空间。您可能需要另一个工作空间。要检查詹金斯工作区,请像这样:

jenkins > manage jenkins > configure system.
Run Code Online (Sandbox Code Playgroud)

现在在顶部你会看到

Home directory
Run Code Online (Sandbox Code Playgroud)

还有一个

Advanced 
Run Code Online (Sandbox Code Playgroud)

选项。点击它你会看到

Workspace Root Directory: and its value is   
${ITEM_ROOTDIR}/workspace
Run Code Online (Sandbox Code Playgroud)

ITEM_ROOTDIR 是 .jenkins 存在的位置。对我来说这是

/users/dev/.jenkins
Run Code Online (Sandbox Code Playgroud)

实际上你可以在第一行看到这一点:

    Home directory  -- ur ITEM_ROOTDIR is shown in this line.
Run Code Online (Sandbox Code Playgroud)

现在转到 ${ITEM_ROOTDIR}/,您将看到一个文件夹名称工作区。

现在,如果您在此工作区中保留任何文件,jenkin 会将此文件作为附件发送。显然你必须在 email-ext 插件的“附件”部分提到它。

现在,如果您想更改工作空间,请更改您的

Workspace Root Directory:  
Run Code Online (Sandbox Code Playgroud)

像这样 ${ITEM_ROOTDIR}/jobs/test/workspace

这取决于你。根据你的意愿改变。

最重要的是,如果你改变你的工作空间

jenkins > manage jenkins > configure system > Advanced option under Home directory

this will be ur default workspace.
Run Code Online (Sandbox Code Playgroud)

如果您只想创建一个特定的工作区

one project
Run Code Online (Sandbox Code Playgroud)

比你必须遵循另一个程序。

只需创建一个 Maven 作业(项目)即可。比进入项目,

//click on configure, now click on "Advanced" option under "Build"
//For free style project, this is in "Advanced project option"
Run Code Online (Sandbox Code Playgroud)

在那里,你会看到

Use custom workspace
Run Code Online (Sandbox Code Playgroud)

选中此选项,并提供您所需的工作空间。对我来说,我是这样给出的:

 /users/dev/workspace/test1/
Run Code Online (Sandbox Code Playgroud)

这是

the workspace only for this project.
Run Code Online (Sandbox Code Playgroud)

现在您可以从这里以附件形式发送文件。

one most important thing is u must restart jenkins server
Run Code Online (Sandbox Code Playgroud)

将新工作区设置为您的工作。

实际上你可以使用 cp 命令将文件从另一个目录复制到 jenkins 工作区

Execute shell option.
Run Code Online (Sandbox Code Playgroud)

现在只需在 email-ext 插件的附件中提供文件名,jenkins 就会将此文件作为附件与您的电子邮件一起发送。

干杯.........