Jenkins .Net 和 Docker?
Jenkins .Net and Docker?
我绝对是 CI (Continuous integration), Docker and Vagrant 的新手。
我想使用 jenkins 来构建我的 .Net 项目构建系统,连接到 BitBucket repository, using a webhook。
我看到 Docker 有 Jenkins 的图像,但我不知道如何在 Docker 图像中使用 Jenkins 来构建我的 .净项目。因此,.Net 项目将执行 msbuild 脚本,我发现它需要安装某种 .NEt 框架。是否可以在 vagrant 图像上 运行 msbuild 脚本?
在这种行为中间 Vagrant 怎么办?
我希望已经足够清楚了。
问题中的一些内容可能需要澄清,但我会尝试回答
CI 过程是您在提交到版本控制系统时不断验证代码库的地方。这可能就像编译代码并验证它是否成功构建一样简单。此外,您可能 运行 一套单元测试、将代码部署到环境和 运行 集成测试甚至 运行 用户验收测试。最好从简单开始并添加层,而不是尝试一次完成所有操作,尤其是如果您是 CI.
的新手
CI 过程提供快速反馈(我刚刚更改的东西是否破坏了某些东西)这增加了您的代码库稳定且值得发布的信心。您进行的自动化测试越多,您就越有信心您的更改是合理的并且没有意外的副作用。 CI 构建应该尽可能快。这个想法是为了获得快速反馈,所以如果您的构建需要 90 秒,那就太棒了。开发人员不必等待很长时间才能发现他们是否破坏了某些东西。如果需要 90 分钟,则说明开发人员未及时获得反馈,并且可能已转到另一项任务 (or is sat around waiting for the build to complete)。这意味着他们可能正在对损坏的代码库进行更改。有些人使用咖啡测试。也就是说,如果构建花费的时间比开发人员去冲杯咖啡并回到办公桌前所花费的时间还长,那么它就花费了太长时间。
您可以使用 Jenkins 来实现 CI,这是一个不错的选择,因为它有许多插件可以帮助您向 CI 流程添加层。它还拥有一个庞大的社区,因此会定期添加新工具和技术,如果您有任何问题,那里有很多知识渊博的人可以提供帮助。
要运行 像Jenkins 这样的CI 服务器,您需要将它安装在某处。通常这是在专用服务器上。如果您想构建 .net 代码,这将是一个 windows 服务器。 (虽然 .net 核心现在是 OSS 并且 运行 在 Linux 上,但目前现有的 .net 应用程序不太可能不费吹灰之力就在 Linux 上编译,这可能会随着 .net 核心而改变发展并变得更加完整)
Here is a good "getting started" 安装 Jenkins 和设置它以构建 .net 应用程序的指南。
您提到的 Docker 容器是一种在基于 Linux 的环境中轻松部署 Jenkins 服务器的方法。正如 ZeissS 所提到的,windows 上的容器支持尚未准备就绪。
话虽如此,如果您有 Linux 可用的基础设施,那么您可以使用 docker 来设置服务器并使用 windows 基于代理或从属来执行实际构建.使用从属很好,因为您可以同时执行多个构建。如果您有多个解决方案和/或一个大型开发团队,那么即使您将 windows 用于 Jenkins 服务器,您也可能想要利用它们。
Vagrant 允许您基于模板创建虚拟机。这意味着机器是一致的。
它可以用在很多地方。例如,您可以使用它为您的构建过程创建从属机器,或者启动一个环境以 运行 您的集成/用户验收测试。请记住,尽管 CI 是关于快速反馈的,所以如果您正在考虑将一次性机器用于从属或环境,那么您需要考虑 vagrant 创建新机器所花费的时间。我发现一个很好的用途是创建一个模板,用于在提交更改之前在开发人员工作站上构建 VM 运行ning 以进行本地测试。您还可以使用它来为更长时间的 运行ning 构建(每晚)创建环境,您可以在其中 运行 更全面更全面的测试集或为您的应用程序构建完整的代码库,而不仅仅是组件已被提交更改。
最后我要说的是,虽然您可以使用 Jenkins 或任何其他 CI 服务器来处理代码到环境的部署。我更喜欢使用像 Octopus Deploy 这样的发布管理工具,你可以从 Jenkins 触发它,它会开箱即用地处理你的许多部署需求(将代码推送到远程机器,配置应用程序池 / windows服务等)它完全是可选的,但需要考虑。
我绝对是 CI (Continuous integration), Docker and Vagrant 的新手。
我想使用 jenkins 来构建我的 .Net 项目构建系统,连接到 BitBucket repository, using a webhook。
我看到 Docker 有 Jenkins 的图像,但我不知道如何在 Docker 图像中使用 Jenkins 来构建我的 .净项目。因此,.Net 项目将执行 msbuild 脚本,我发现它需要安装某种 .NEt 框架。是否可以在 vagrant 图像上 运行 msbuild 脚本?
在这种行为中间 Vagrant 怎么办? 我希望已经足够清楚了。
问题中的一些内容可能需要澄清,但我会尝试回答
CI 过程是您在提交到版本控制系统时不断验证代码库的地方。这可能就像编译代码并验证它是否成功构建一样简单。此外,您可能 运行 一套单元测试、将代码部署到环境和 运行 集成测试甚至 运行 用户验收测试。最好从简单开始并添加层,而不是尝试一次完成所有操作,尤其是如果您是 CI.
的新手CI 过程提供快速反馈(我刚刚更改的东西是否破坏了某些东西)这增加了您的代码库稳定且值得发布的信心。您进行的自动化测试越多,您就越有信心您的更改是合理的并且没有意外的副作用。 CI 构建应该尽可能快。这个想法是为了获得快速反馈,所以如果您的构建需要 90 秒,那就太棒了。开发人员不必等待很长时间才能发现他们是否破坏了某些东西。如果需要 90 分钟,则说明开发人员未及时获得反馈,并且可能已转到另一项任务 (or is sat around waiting for the build to complete)。这意味着他们可能正在对损坏的代码库进行更改。有些人使用咖啡测试。也就是说,如果构建花费的时间比开发人员去冲杯咖啡并回到办公桌前所花费的时间还长,那么它就花费了太长时间。
您可以使用 Jenkins 来实现 CI,这是一个不错的选择,因为它有许多插件可以帮助您向 CI 流程添加层。它还拥有一个庞大的社区,因此会定期添加新工具和技术,如果您有任何问题,那里有很多知识渊博的人可以提供帮助。
要运行 像Jenkins 这样的CI 服务器,您需要将它安装在某处。通常这是在专用服务器上。如果您想构建 .net 代码,这将是一个 windows 服务器。 (虽然 .net 核心现在是 OSS 并且 运行 在 Linux 上,但目前现有的 .net 应用程序不太可能不费吹灰之力就在 Linux 上编译,这可能会随着 .net 核心而改变发展并变得更加完整)
Here is a good "getting started" 安装 Jenkins 和设置它以构建 .net 应用程序的指南。
您提到的 Docker 容器是一种在基于 Linux 的环境中轻松部署 Jenkins 服务器的方法。正如 ZeissS 所提到的,windows 上的容器支持尚未准备就绪。
话虽如此,如果您有 Linux 可用的基础设施,那么您可以使用 docker 来设置服务器并使用 windows 基于代理或从属来执行实际构建.使用从属很好,因为您可以同时执行多个构建。如果您有多个解决方案和/或一个大型开发团队,那么即使您将 windows 用于 Jenkins 服务器,您也可能想要利用它们。
Vagrant 允许您基于模板创建虚拟机。这意味着机器是一致的。
它可以用在很多地方。例如,您可以使用它为您的构建过程创建从属机器,或者启动一个环境以 运行 您的集成/用户验收测试。请记住,尽管 CI 是关于快速反馈的,所以如果您正在考虑将一次性机器用于从属或环境,那么您需要考虑 vagrant 创建新机器所花费的时间。我发现一个很好的用途是创建一个模板,用于在提交更改之前在开发人员工作站上构建 VM 运行ning 以进行本地测试。您还可以使用它来为更长时间的 运行ning 构建(每晚)创建环境,您可以在其中 运行 更全面更全面的测试集或为您的应用程序构建完整的代码库,而不仅仅是组件已被提交更改。
最后我要说的是,虽然您可以使用 Jenkins 或任何其他 CI 服务器来处理代码到环境的部署。我更喜欢使用像 Octopus Deploy 这样的发布管理工具,你可以从 Jenkins 触发它,它会开箱即用地处理你的许多部署需求(将代码推送到远程机器,配置应用程序池 / windows服务等)它完全是可选的,但需要考虑。