【问题标题】:send war to another job in jenkins向詹金斯的另一份工作发送战争
【发布时间】:2016-07-22 10:35:34
【问题描述】:

我在我的 jenkins 实例中创建了两个作业:

  1. Gradle 作业构建 war 任务并生成准备部署的 war 文件。
  2. Docker 作业从存储库构建 Docker 映像。

两者都工作正常。但是,第二个取决于第一个。所以,Docker 作业需要使用 Gradle 作业生成的最后一个 war 文件。

我怎么能做到这一点?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    您可以使用parameterized job trigger 插件来触发带有参数的子作业。您必须执行以下操作才能解决上述问题:

    1. 创建父作业,其中包含您提到的两个子作业。
    2. 然后触发第一个作业并将工件存档,即war 文件。
    3. 然后将第一个作业的最后一个触发器内部版本号传递给第二个作业并启动该作业。使用Copy artifacts 插件从第一个作业中复制war,并在开始之前传递特定的内部版本号。

    这会解决你的问题!!!

    【讨论】:

    • 感谢您的评论@Devavrata。我不太了解dirst项目。为什么我需要创建一个父子作业和两个子子作业?我不能在没有父母的情况下创建两个工作并在彼此之间发送信息吗?
    【解决方案2】:

    为您的第一份工作(Gradle 工作)使用构建后任务,只需将 war 文件 cp 到 Docker 工作的工作区中。然后配置 Docker 作业,使其在构建之前不清理工作空间。对于构建后操作,选择构建后删除工作区。这将确保您在 Gradle 作业工作区中只有最新的 war 文件。此外,如果您还没有使用它,您应该使用构建后触发器。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2011-02-10
      相关资源
      最近更新 更多