使用 Jenkins 部署到生产服务器
Using Jenkins to Deploy to Production Server
我有 3 个阶段(开发/暂存/生产)。我已经成功地为每个设置发布,这样代码将使用 msbuild 部署到正确的位置,并转换正确的 Web 配置——所有这些都在 Jenkins 中。
我遇到的问题是,我不知道如何将代码部署到开发环境中的暂存(以及暂存到生产)。我目前正在使用 SVN 作为源代码控制,所以我想我需要以某种方式保存开发人员构建的最新修订号,并以某种方式告诉 Jenkins build/deploy 根据该编号进行暂存?
有没有办法做到这一点,或者有更好的选择?
如有任何帮助,我们将不胜感激。
编辑:决定使用保存修订号的方法,该方法将包含修订号的文件解析到下一个作业——为此,我遵循了这个答案:
How to promote a specific build number from another job in Jenkins?
它解释了如何使用升级插件将工件从一个作业复制到另一个作业。对于工件本身,我在主构建之后添加了一个 "Execute Windows batch command" 构建步骤:
echo DEV_ENVIRONMENT_CORE_REVISION:%SVN_REVISION%>env.properties
然后在暂存作业中,使用上面的指南,复制该文件,然后使用插件 EnvInject,从该文件读取并设置环境变量,然后可以将其用作 SVN 存储库的参数URL.
您应该能够识别在 DEV 中构建的变更集编号,并手动将该变更集传递给 Jenkins 构建以从 SVN 中提取相同的变更集。显然,这会使您的部署更加手动。也许您可以设置 Jenkins 将变更集编号发布到一个文件中,然后让稍后的环境构建来读取该文件中的变更集编号。
我们以前也用过这个模型,它总是很复杂。最终,我们使用 WebDeploy 转移到构建一次并部署多次的模型。这使过程变得更加简单。检查一下 - http://www.dotnetcatch.com/2016/04/16/msbuild-once-msdeploy-many-times/
我有 3 个阶段(开发/暂存/生产)。我已经成功地为每个设置发布,这样代码将使用 msbuild 部署到正确的位置,并转换正确的 Web 配置——所有这些都在 Jenkins 中。
我遇到的问题是,我不知道如何将代码部署到开发环境中的暂存(以及暂存到生产)。我目前正在使用 SVN 作为源代码控制,所以我想我需要以某种方式保存开发人员构建的最新修订号,并以某种方式告诉 Jenkins build/deploy 根据该编号进行暂存?
有没有办法做到这一点,或者有更好的选择?
如有任何帮助,我们将不胜感激。
编辑:决定使用保存修订号的方法,该方法将包含修订号的文件解析到下一个作业——为此,我遵循了这个答案:
How to promote a specific build number from another job in Jenkins?
它解释了如何使用升级插件将工件从一个作业复制到另一个作业。对于工件本身,我在主构建之后添加了一个 "Execute Windows batch command" 构建步骤:
echo DEV_ENVIRONMENT_CORE_REVISION:%SVN_REVISION%>env.properties
然后在暂存作业中,使用上面的指南,复制该文件,然后使用插件 EnvInject,从该文件读取并设置环境变量,然后可以将其用作 SVN 存储库的参数URL.
您应该能够识别在 DEV 中构建的变更集编号,并手动将该变更集传递给 Jenkins 构建以从 SVN 中提取相同的变更集。显然,这会使您的部署更加手动。也许您可以设置 Jenkins 将变更集编号发布到一个文件中,然后让稍后的环境构建来读取该文件中的变更集编号。
我们以前也用过这个模型,它总是很复杂。最终,我们使用 WebDeploy 转移到构建一次并部署多次的模型。这使过程变得更加简单。检查一下 - http://www.dotnetcatch.com/2016/04/16/msbuild-once-msdeploy-many-times/