【问题标题】:How to run script shell before building on Jenkins如何在 Jenkins 上构建之前运行脚本 shell
【发布时间】:2024-05-01 06:25:03
【问题描述】:

(这里是詹金斯 newb-newb-newbie) 你好呀。 我有一个 Maven 项目,部署在 Jenkins 上。在这个项目中,我有一个集成测试,它依赖于 .Net 服务器才能正确运行。

问题是,当我尝试在 Jenkins 上构建我的项目时,集成测试失败,因为 .Net 没有启动...

在构建我的项目之前,我需要执行一个 shell 脚本(用于启动 .Net 服务器)。 所以我的问题是:如何在从 Jenkins 构建之前启动我的项目脚本?

【问题讨论】:

  • 如何在本地执行集成测试?服务器是先手动启动的?你通常如何启动这个服务器(通过命令行?)?
  • 在本地,我必须先启动我的 .Net 服务器,然后再运行集成测试。我正在使用 mcs src/*.cs -pkg:wcf -out:server.exe 编译我的服务器,然后为了启动我的服务器,我正在做单 server.exe。我意识到我在 Jenkins 上的工作配置中有“预构建”选项 :) 所以我尝试在构建之前运行这些行。但现在我遇到了另一个问题:jenkins 找不到命令 mcs 和 mono...如何我可以在 Jenkins 中添加正确的库(插件?)吗?...尝试添加 MSBuild 插件,但效果不大。
  • 如果命令是系统路径的一部分,Jenkins 应该会找到它们

标签: maven jenkins build integration-testing


【解决方案1】:

有一个构建步骤执行 Windows 批处理命令,您可以使用它来启动您的服务器。

您可能必须使用START 让它在一个单独的进程中启动,这样您的构建就可以继续,而无需等待服务器进程完成,并且您可能需要输入一些delay 以防您的服务器需要一些是时候在您的测试运行之前解决问题了。

您可能还需要在测试完成后终止服务器,您可以在另一个执行 Windows 批处理命令构建步骤中使用tasklisttaskkill,以及一些批处理魔法这样做。

【讨论】: