嗨,我正在使用Jenkins Email-ext插件.
我在哪里可以找到我可以在电子邮件的html内容中引用的所有内容的列表?
例如:我最近发现您可以使用以下方法将参数值放入邮件中:
${ENV,var="variable_name"}
Run Code Online (Sandbox Code Playgroud)
但是说我想获得构建日志或内部版本号或构建状态(通过失败).您知道是否有文档列出了此插件中可参考的所有数据.
谢谢!!
我已经调整了标准果冻模板以在表格中显示当前的测试结果,但我真的希望能够显示差异,如Jenkins自己的测试结果页面所示.
例如:
JUnit Tests: 0 failures (±0) , 1 skipped (+1)
Package Duration Fail (diff) Skip (diff) Total (diff)
foo.bar.baz 89 ms 0 0 1 +1 5 +2
Run Code Online (Sandbox Code Playgroud) 我有创建构造函数的问题,Jenkins可以调用一些源自Jelly表单的JSON数据.为了测试,我使用mvn hpi:create以下两个自定义文件创建了一个最小的Jenkins插件:
SRC /主/资源/富/海德/詹金斯/插件/ OptionalBlockSampleBuilder/config.jelly
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<f:block>
<table>
<f:optionalBlock name="enableText" title="Enable optional text" checked="${instance.enableText}">
<f:entry title="Optional text" field="text">
<f:textbox />
</f:entry>
</f:optionalBlock>
</table>
</f:block>
Run Code Online (Sandbox Code Playgroud)
的src/main/JAVA /富/海德/詹金斯/插件/ OptionalBlockSampleBuilder.java
package foo.hyde.jenkins.plugins;
public class OptionalBlockSampleBuilder extends hudson.tasks.Builder {
public final String text;
public final boolean enableText;
@org.kohsuke.stapler.DataBoundConstructor
public OptionalBlockSampleBuilder(String text, Boolean enableText) {
this.text = text;
this.enableText = (enableText != null) && enableText;
}
@Override
public boolean perform(hudson.model.AbstractBuild build, hudson.Launcher launcher, hudson.model.BuildListener listener) {
listener.getLogger().println("OptionalBlockSampleBuilder …Run Code Online (Sandbox Code Playgroud) 我想改变Jenkins的外观和感觉(ui自定义).此外,我想添加新的视图(比如新的html页面或网页),并导航到所需的jenkins页面等.
如果任何单个插件可以帮助我这么做,请告诉我.任何相关信息(如何通用)将非常有帮助.任何建议或链接或教程也不胜感激.
PS: - jenkins相当新鲜.来自这里的输入将帮助我在问题中添加更多细节.
我正在寻找使用以下插件指定Skinning Jenkins的文档或教程: -
https://wiki.jenkins-ci.org/display/JENKINS/Simple+Theme+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/jQuery+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/jQuery+UI+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/JSWidgets+Plugin
Run Code Online (Sandbox Code Playgroud)
插件页面提供的信息很少,关于如何使用这些以及可以更改UI的好处和扩展.
任何文档或链接表示赞赏.
我想在我的构建配置中实现一些嵌套属性,我需要使用repeatableProperty.
每次我将repeatableProperty添加到我的果冻文件时,我在加载配置页面时会收到异常.
<f:entry>
<f:repeatableProperty field="test"></f:repeatableProperty>
</f:entry>
Run Code Online (Sandbox Code Playgroud)
然后出现此错误:
javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/C:/Program%20Files/apache-maven-3.3.3/testplugin/target/work/webapp/WEB-INF/lib/jenkins-core-1.621.jar!/lib/form/repeatableProperty.jelly:66:69: <st:include> Error setting property 'class', exception - org.apache.commons.beanutils.ConversionException: No value specified for 'Class'
Run Code Online (Sandbox Code Playgroud)
我看了一些其他插件,他们都只是像这样使用repeatableProperty.另外我google了很多,但没有很多比赛,我发现的比赛没有帮助.需要你帮助的人.
尝试实现插件的配置文件时出现问题。我使用现有的SideBar插件启动了程序,但是在将a List<String>作为变量添加到时遇到了问题class Action:private List<String> projects;
如何在果冻文件中填充这样的列表?
我尝试这样做:
<f:entry>
<f:optionalBlock title="Project to be considered :">
<f:repeatable var="project" items="${link.projects}" name="projects" add="Add a project">
<f:entry title="Project 1 :">
</f:entry>
</f:repeatable>
</f:optionalBlock>
</f:entry>
Run Code Online (Sandbox Code Playgroud)
我在links.jelly文件中添加了这些行,但是它不起作用。
如果有人知道该怎么做,那就太好了。
谢谢
如何将构建参数传递给email-ext jelly模板?在进行一些构建之前,我想放置一个不同的自定义消息/一些公告/非代码更改,决定等。我正在考虑将其作为构建参数,以便出现一个屏幕提示我输入消息,如果我要手动构建。
编辑:我找到了一个解决方案,构建参数可以作为Env变量使用,我有以下代码可以访问Env变量:
<j:set var="buildenv" value="${build.getEnvironment(listener)}"/>
<j:set var="customMsg" value="${buildenv.get('customMsg')}"/>
${customMsg}
Run Code Online (Sandbox Code Playgroud) 我有一个使用插件ansicolor和的Jenkins服务器email-ext。Jenkins使用ANSI转义的文本运行脚本,该脚本已在Jenkins Web GUI的控制台输出上正确转换为以颜色编码的HTML。
Email-ext用于使用Jelly脚本模板发送包含日志文件的电子邮件,该模板基于内置 html模板(即Default Contentbox具有value ${JELLY_SCRIPT,template="html_modified"})。但是,即使电子邮件Content Type设置为,电子邮件中的日志数据也不会使用颜色编码HTML。
根据在果冻提示电子邮件-EXT文档,可以
...通过查询以下构建操作来获取其他插件操作的对象:
${it.getAction('hudson.plugins.fitnesse.FitnesseResultsAction')}
我认为这可以用来解决以下问题,但是我不确定如何解决。一个人如何it.getAction()在Jelly模板中使用该函数来利用ansicolorHTML发射器?我尝试查看源代码以找到可以在Jelly技巧示例中使用的“动作”。
需要注意的是它出现在被收购的日志数据的内置html模板使用build.getLog(100)其中,出于某种原因,并没有提供原ANSI转义日志文本。如果此类文本通过ansicolor传递,则不会有HTML标记,因为没有要转换的ANSI标记。因此,html模板中的循环应从日志文件中提取。
这是html我要修改的模板片段
ansicolor以使其成为漂亮的HTML<TABLE width="100%" cellpadding="0" cellspacing="0">
<TR>
<TD class="bg1">
<A href="${rooturl}${build.url}">${rooturl}${build.url}><B>CONSOLE OUTPUT</B></A>
</TD>
</TR>
<j:forEach var="line" items="${build.getLog(100)}">
<TR>
<TD class="console">${line}</TD>
</TR>
</j:forEach>
</TABLE>Run Code Online (Sandbox Code Playgroud)
我正在运行以下命令来获取当前登录 jenkins 的用户。
hudson.model.User.current()
Run Code Online (Sandbox Code Playgroud)
但是,我得到的结果是“SYSTEM”。这是否意味着 jenkins 中的所有构建都以 SYSTEM 用户身份发生。如果是这种情况,下面的方法是获取触发构建的用户的用户 ID 的唯一方法吗?
for(hudson.model.Cause cause : build.causes) {
userBuild = cause.getUserName()
}
Run Code Online (Sandbox Code Playgroud)
实际上,我正在尝试在 jenkins 中编辑 buildCaption.jelly,以便只有触发构建的用户才能取消构建。我被困在需要获取当前登录用户的用户 ID 的地方,以便我可以检查他是否与开始构建的用户相同。任何想法,请提出建议。提前致谢。
我正在构建一个访问远程服务器的Jenkins插件.作为配置的一部分,用户需要输入服务器的URL并提供访问密钥.然后插件将从服务器检索资源列表,用户需要从html select输入中选择适当的资源.
我正在使用/ lib/form命名空间来创建config.jelly文件,并使用标记填充select:
<f:entry title="Resource" field="resource">
<f:select />
</f:entry>
在我的Descriptor课程中,我有一个方法:
doFillResourceItems(@QueryParamter final String url, @QueryParameter final String key)
并且当onchange浏览器触发事件时,订书机似乎调用该方法(如预期的那样).
我的问题在于doCheckResource(@QueryParameter final String value)方法.访问ListBoxModel该doFillResourceItems()方法返回的对象会很有帮助,因为我想向用户显示的错误消息应该是不同的,这取决于插件是否能够检索资源列表.一种选择是简单地将the url和keyfields注入到doCheckResource方法中,然后再试一次,但是我们正在检索两次资源列表,这是不理想的.
为了让Stapler将之前检索ListBoxModel到的对象注入验证方法调用,我需要做什么?