为 Microsoft 应用程序设置持续集成和持续部署
Setting up Continuous integration and continuous deployment for Microsoft Applications
在我的组织中,我们有 200 多个 Microsoft 桌面和 Web 应用程序。我正在尝试为这些应用程序设置持续集成和持续部署(我已经为 Java 个应用程序设置了)。我们已经在 Enterprises Github、Jenkins、Nexus、XL-Deploy 和 XL-Release 中部署了以下工具。我们还在 groovy 中开发了一个由 Jenkins 调用的框架,并在 Jenkins 中完成所有自动作业创建并将生成的工件推送到 nexus。
我想设置同类解决方案,并想为 Microsoft 使用相同的工具集。
我浏览了 Nexus 文档,但没有找到任何方法来存储生成的工件(.exe 或 MSI)它只支持 Nuget 包,我不确定它们是什么以及如何使用它们?
我能够在 Jenkins 中使用 msbuild.exe 构建我的项目解决方案文件执行 shell 并且能够以 .exe 和 MSI 的形式生成工件。
现在我有几个问题:
-- 我应该如何以及在何处对生成的工件(.exe 和 MSI)进行版本控制和存储,以及如何在目标主机上部署我的桌面应用程序(众所周知,我们需要双击 .exe安装它)。
-- 我应该如何处理 web .net 应用程序?
-- 什么是 nuget 包,我可以将它们用于桌面应用程序部署而不是 MSI,我是否需要为此修改我的代码中的任何内容?
PS:我知道 TFS 是解决方案,但由于成本限制,我们不能在我们的组织中使用它。
要上传非 Maven 项目工件,例如 zip、msi 等,您可以使用 Nexus Artifact Uploader。为此,必须创建 maven 类型的托管存储库,然后通过填充 GAV 参数将工件上传到此存储库,并且可以根据 GAV 参数检索工件。
要将工件部署到测试环境,请使用 WinRM Client Plugin 连接测试环境。
我找到了解决方案:
我正在做的是,我使用 msbuild 命令行编译解决方案文件,这将为我生成 .exes。生成 exe 后,我将使用 WIX 实用程序将它们打包到 MSI 中。生成 MSI 后,我使用 linux mv 命令和 for 循环对它们进行版本控制,我使用传递 GAV 参数的 maven 命令将它们推送到 Nexus 存储库中。
在我的组织中,我们有 200 多个 Microsoft 桌面和 Web 应用程序。我正在尝试为这些应用程序设置持续集成和持续部署(我已经为 Java 个应用程序设置了)。我们已经在 Enterprises Github、Jenkins、Nexus、XL-Deploy 和 XL-Release 中部署了以下工具。我们还在 groovy 中开发了一个由 Jenkins 调用的框架,并在 Jenkins 中完成所有自动作业创建并将生成的工件推送到 nexus。
我想设置同类解决方案,并想为 Microsoft 使用相同的工具集。
我浏览了 Nexus 文档,但没有找到任何方法来存储生成的工件(.exe 或 MSI)它只支持 Nuget 包,我不确定它们是什么以及如何使用它们?
我能够在 Jenkins 中使用 msbuild.exe 构建我的项目解决方案文件执行 shell 并且能够以 .exe 和 MSI 的形式生成工件。
现在我有几个问题:
-- 我应该如何以及在何处对生成的工件(.exe 和 MSI)进行版本控制和存储,以及如何在目标主机上部署我的桌面应用程序(众所周知,我们需要双击 .exe安装它)。
-- 我应该如何处理 web .net 应用程序?
-- 什么是 nuget 包,我可以将它们用于桌面应用程序部署而不是 MSI,我是否需要为此修改我的代码中的任何内容?
PS:我知道 TFS 是解决方案,但由于成本限制,我们不能在我们的组织中使用它。
要上传非 Maven 项目工件,例如 zip、msi 等,您可以使用 Nexus Artifact Uploader。为此,必须创建 maven 类型的托管存储库,然后通过填充 GAV 参数将工件上传到此存储库,并且可以根据 GAV 参数检索工件。
要将工件部署到测试环境,请使用 WinRM Client Plugin 连接测试环境。
我找到了解决方案:
我正在做的是,我使用 msbuild 命令行编译解决方案文件,这将为我生成 .exes。生成 exe 后,我将使用 WIX 实用程序将它们打包到 MSI 中。生成 MSI 后,我使用 linux mv 命令和 for 循环对它们进行版本控制,我使用传递 GAV 参数的 maven 命令将它们推送到 Nexus 存储库中。