仅当有新版本的文件时才从其他作业复制工件
Copy artifacts from other job only if there is new version of file
我们有一个主人和两个奴隶。
在 Master 上有一个工作检查 Nexus 上是否有新版本,如果是,下载最新的 jar 并更新文本文件 VERSION.TXT 中的最新版本(即 xxx-0.012.jar)。 (只能从 master 访问 nexus 是可能的)。
我们需要 运行 在 slaves 上下载 jar,所以我们需要从 master 复制它。
我们有一份工作很少触发其他工作:
1)CHECK_LATEST_JAR: 运行s 在 master 上的工作,检查 nexus 上是否有新版本的 jar,下载它。
2)GET_JAR_TO_SLAVE: 运行s 在从机上的作业,应该从主机复制最新的 jar
3)RUN_JAR: 从文件 VERSION.TXT 和 运行s 中获取最新 jar 名称的作业。
在 CHECK_LATEST_JAR 中,如果在 nexus 上找到更新版本,我们将其下载到工作区并存档工件(最新版本的 jar + 文本文件)。
现在 GET_JAR_TO_SLAVE 我们想使用 "Copy artifacts from another job" 插件 - 但在这里我们需要在 运行 这一步添加一个条件,只有在有更新版本的情况下,就好像没有CHECK_LATEST_JAR 中的工件此作业失败..
有没有办法比较主文件和从文件的文件?
尝试将条件步骤与 groovy 脚本一起使用 - 但无法弄清楚如何告诉它如果作业 运行s 在从机上访问主机上的文件。
刚遇到可能可以使用的 FSTrigger 插件 - 但同样的问题是如何告诉它在主服务器上监视文件 VERSION.TXT 以及是否对从服务器上的 运行 作业进行更改。
对于我们如何实现目标的任何想法,我们将不胜感激。
谢谢
我们找到了插件 Copy Data to Workspace 并用它来将包含最新版本的文件从主服务器上的文件夹复制到其中一个从服务器上的作业 运行 的工作区。
之后,我们使用 Conditional BuildStep plugin 字符串比较与 Token 宏比较文件内容,如果文件内容不同,我们复制下载 jar 的作业的工件。
我们有一个主人和两个奴隶。 在 Master 上有一个工作检查 Nexus 上是否有新版本,如果是,下载最新的 jar 并更新文本文件 VERSION.TXT 中的最新版本(即 xxx-0.012.jar)。 (只能从 master 访问 nexus 是可能的)。
我们需要 运行 在 slaves 上下载 jar,所以我们需要从 master 复制它。
我们有一份工作很少触发其他工作: 1)CHECK_LATEST_JAR: 运行s 在 master 上的工作,检查 nexus 上是否有新版本的 jar,下载它。 2)GET_JAR_TO_SLAVE: 运行s 在从机上的作业,应该从主机复制最新的 jar 3)RUN_JAR: 从文件 VERSION.TXT 和 运行s 中获取最新 jar 名称的作业。
在 CHECK_LATEST_JAR 中,如果在 nexus 上找到更新版本,我们将其下载到工作区并存档工件(最新版本的 jar + 文本文件)。
现在 GET_JAR_TO_SLAVE 我们想使用 "Copy artifacts from another job" 插件 - 但在这里我们需要在 运行 这一步添加一个条件,只有在有更新版本的情况下,就好像没有CHECK_LATEST_JAR 中的工件此作业失败..
有没有办法比较主文件和从文件的文件? 尝试将条件步骤与 groovy 脚本一起使用 - 但无法弄清楚如何告诉它如果作业 运行s 在从机上访问主机上的文件。
刚遇到可能可以使用的 FSTrigger 插件 - 但同样的问题是如何告诉它在主服务器上监视文件 VERSION.TXT 以及是否对从服务器上的 运行 作业进行更改。
对于我们如何实现目标的任何想法,我们将不胜感激。 谢谢
我们找到了插件 Copy Data to Workspace 并用它来将包含最新版本的文件从主服务器上的文件夹复制到其中一个从服务器上的作业 运行 的工作区。
之后,我们使用 Conditional BuildStep plugin 字符串比较与 Token 宏比较文件内容,如果文件内容不同,我们复制下载 jar 的作业的工件。