Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Jenkins中显示构建屏幕中工作区文本文件中的内容_Jenkins - Fatal编程技术网

在Jenkins中显示构建屏幕中工作区文本文件中的内容

在Jenkins中显示构建屏幕中工作区文本文件中的内容,jenkins,Jenkins,我有一份Jenkins的工作,将工件存储为构建后操作。在这些工件中有一个文本文件,它告诉我们已经构建了哪个版本的软件。在Jenkins项目中,是否有可能以某种方式访问此文本文件并在Jenkins构建页面的某个位置显示其内容?这样,构建经理将立即看到这个归档工件包含的软件版本。谢谢 GroovyScript还有更高级的方法,但我可以建议如下: 使用插件。它使用正则表达式查看模式的控制台输出(构建日志),并相应地设置描述(如屏幕截图所示) 如果控制台日志中尚未打印版本,则可以使用 cat文件名(L

我有一份Jenkins的工作,将工件存储为构建后操作。在这些工件中有一个文本文件,它告诉我们已经构建了哪个版本的软件。在Jenkins项目中,是否有可能以某种方式访问此文本文件并在Jenkins构建页面的某个位置显示其内容?这样,构建经理将立即看到这个归档工件包含的软件版本。谢谢

GroovyScript还有更高级的方法,但我可以建议如下:

使用插件。它使用正则表达式查看模式的控制台输出(构建日志),并相应地设置描述(如屏幕截图所示)

如果控制台日志中尚未打印版本,则可以使用
cat文件名
(Linux)或
键入文件名
(Windows)。无需将版本文本文件存储为工件(除非出于其他目的需要)

为了直接回答您的问题,为了向实际构建页面添加文本,您可以使用插件,类似这样:
def workspace=manager.build.getEnvVars()[“workspace”]
String fileContents=新文件(“${workspace}/filename.txt”).text
manager.createSummary(“folder.gif”).appendText(${fileContents}”)


插件页面有很多例子。

我得到了一个修改后的建议。因为您真正想要的只是在显示的构建名称和/或描述中包含语义版本控制信息,所以有一种更简单的方法来实现这一点

首先,我偶然发现了一个插件,它可以很好地从Maven或SBT构建过程中提取您的版本,即。这就是广告中所说的——从POM或任何东西中提取版本,并将其作为文件和变量包含在构建过程中。因此,您可以自由地使用这两种方法,或者在构建过程中包含该文件,并按照自己的意愿进行操作,或者使用该变量影响Jenkins中的构建流。现在,因为这个插件仍然有几个bug,我想让你看看我自己构建的这个插件,里面已经有修复程序,可以从中获得。我会把我自己的版本下的时刻,所有的修复程序将合并到官方插件

那么让我们从名字开始。如前所述,最好的方法是使用。为了使用这两个插件为构建设置名称,请导航到项目的配置并在其中找到名为“确定项目的语义版本”的选项,激活它,然后使用变量的默认名称或提供自己的名称。当你向下滚动一点到名为“设置构建名称”的选项并激活它。默认情况下,您将在那里看到常规生成命名约定-
#${build\u NUMBER}
。您可以使用该变量以及任何插件提供的任何其他变量,但在这种特定情况下,您需要使用上面指定的环境变量,即:

#${BUILD_NUMBER} - ${ENV,var="SEMANTIC_VERSION"}
这会将每个构建的名称设置为更有意义的名称,因此在本例中,它可能会导致
#76-0.0.76-SNAPSHOT
。显然,您可以自由地自行试验,根据您想要的特定格式定制构建名称。请记住,它可能会稍微中断您的页面流,因为名称将比通常情况下更长,因此它会将最新版本的表推送到屏幕左侧,同时也会影响您的仪表板

现在,为了进一步自定义构建信息,您可能还需要查看一下。就我个人而言,由于我已经开始进一步调查这起案件,我现在将两者结合使用。您可以使用与上面列出的相同的令牌扩展,最大的区别是您需要创建/维护一个用于创建描述的文件。本说明中包含的内容仅受Jenkins本身或任何已安装插件发布的所有变量或令牌的限制(请看一看)。我个人列出了从不同地方收集的一些信息,以及Maven在构建过程中创建/提供的一些附加内容。所以它很方便

上面提到的两个插件(Build Name Setter和Description Setter)都可以使用其他信息源来构建名称和描述-可以是属性文件等。例如,可以使用删除属性文件来读取有关构建本身的所有可能信息,例如:

${PROPFILE,file="hudsonBuild.properties",property="build.user.name"}
在这种情况下,这将解析为触发生成的用户的用户名。
同样,可以使用令牌宏插件可见的任何变量。

现在,我已经使用description setter插件及其regexp从输出中提取了发布版本。现在我如何在构建名称设置器插件中重用这个值?我在任何地方都找不到description setter值变量…感谢Lukasz的回答。我不确定语义版本控制插件是否能达到我的目的。我需要构建名称与SVN标记相同。我使用description setter插件和regexp从构建输出中接收到这个消息。我现在有了正确的描述,但我需要将其导出为变量,这样我就可以在build setter插件中重用该变量。哇,好吧,还有一个问题。如果将该值存储为属性,则只需读取如下属性即可单独使用Build Name Setter插件(无需上述任何其他内容):
${PROPFILE,file=“Build.properties”,property=“property_Name”}
。我将更新答案…我不确定description setter插件是否将regexp存储为变量。如果是这样,那就太好了。知道变量名是什么吗?不,我相信不会。它是代币的消费者,而不是生产者。如果您有这样一个特定的需求,您可以创建自己的插件。或者,如果你是真的