问题标签 [continuous-deployment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4859 浏览

msbuild - 如何在不需要 IIS 参与的情况下在本地或远程部署 msbuild zip 包

我正在创建一个应用程序以实现应用程序部署的自动化(https://github.com/twistedtwig/AutomdatedDeployments#readme)。

这个想法是一切都在源代码控制、应用程序文件、应用程序配置以及 IIS 配置中。我的应用程序允许在构建到开发机器之后自动部署解决方案(将构建后设置添加到 sln / proj 文件)。它将允许 CI 服务器自动部署到其机器进行测试,以及 CI 服务器将成功的构建推送到 QA / 测试 / 生产服务器。我遇到的 msdeploy 问题之一是要求事先使用网站/应用程序设置 IIS(我的应用程序正试图解决这个问题)。

到目前为止,我可以通过配置文件自动创建、更新和删除应用程序池、网站和应用程序。我可以很好地同步文件和文件夹。最后一步是使用 msbuild 中的 /target:package 开关为 Web 部署创建干净的文件结构。例如,我会运行如下命令:

这将创建一个不错的 zip 文件,其内部文件路径为“C_C\wbesites\mySite”(据我所知),可以同步到生产服务器。

我的问题是我如何部署这个 zip 文件。我希望它独立于任何 IIS 信息,即我只是将文件/文件夹推送到某个位置(在本地机器上供开发人员使用,或远程用于测试等)。使用应用程序池和站点等设置 IIS 将单独处理。我尝试过的一些命令(及其输出)如下:

第一个命令我试图让它解压具有它所具有的结构的文件。不过,它似乎对应用程序池的东西感到不安(我不希望它碰它)。

第二个我试图绕过“自动”位,但这也不开心。

我正在努力寻找有关此过程的大量信息。

目前我能看到如何实现这一目标的唯一方法是不使用 msdeploy ,而是创建我自己的任务来集成文件结构并同步我自己的文件(不理想)。

0 投票
2 回答
1038 浏览

git - svn提交后的Git推送以自动部署到Heroku?

我正在尝试为我的团队实现一个非常简单的自动部署系统。

我们的代码位于 SVN 存储库中,但我使用 heroku 部署我的应用程序(使用 GIT)

目前我在本地执行以下操作:

但是我想自动化这个过程,这样当团队中的任何人提交新代码时,它会自动推送到 heroku 并且可以在我们的开发站点上查看。

有什么简单的方法吗?也许设置一个 EC2 实例,在提交后通过 ssh 进入它(使用挂钩脚本)并运行上述命令?但是这个解决方案似乎过于复杂..

0 投票
1 回答
237 浏览

amazon-web-services - 无法使用 AWS Elastic Beanstalk 将多个应用程序部署到单个 EC2 实例的解决方法?

我们有一个使用 AWS Elastic Beanstalk 运行的 Web 应用程序(通过 Visual Studio 2010)。

我们现在希望在同一台服务器上建立第二个站点,用于开发和演示目的。我想指向持续部署的新位置。一旦我们感到高兴,我想切换回原来的(生产)目的地。

我一直在网上阅读,看起来使用 Elastic Beanstalk 无法在同一个实例上运行两个站点?

我们目前在免费套餐下运行,并试图尽可能地榨取每一分钱。不得不抛出另一个实例来托管我们的预生产环境将使我们分配给免费层使用的时间减半。

有任何想法吗?

0 投票
1 回答
2853 浏览

clojure - 如何在运行时访问正在运行的 Clojure 应用程序的版本号?

我有一个用 Clojure 编写的 Web 服务,它不断交付。为了让我们的自动化部署工具知道已经部署了哪个版本的代码库,Web 服务应该提供一种方法来查询它是哪个版本。该版本在Leiningen构建工具中声明为项目设置的一部分,如下所示:

代码库被打包为一个 JAR 文件。

我们开发人员不想在每次提交时增加版本号。相反,我们希望它在我们的持续集成服务器(在本例中为 Jenkins)上触发新构建时自动递增。例如,当版本控制签入提示此代码库的第 40 秒构建时,版本为1.2.42.

对于已构建和部署的任何特定 JAR,我希望允许以某种方式查询版本号(例如,使用 HTTP 请求,但这是一个实现细节)。响应应包含字符串1.2.42

如何使该版本号可用于正在运行的应用程序?

(可能重复,虽然它不包括 Jenkins 方面:Embed version string from leiningen project in application

0 投票
2 回答
240 浏览

azure - 将 Team Project Build 从 TFSPreview 部署到 Azure 时,如何指示要部署的 Web 应用程序?

我有一个团队项目的 TFSPreview 帐户,并且有一个构建定义,它构建解决方案,其中我有一个 Web 应用程序。

我已将其链接到 Azure 以实现持续部署(构建定义使用“AzureContinuousDeployment.11.xaml”工作流)。

一切正常。我不明白,如果有几个Web App,它如何选择部署哪个Web App?我找不到这方面的任何设置。

upd:我在我的解决方案中添加了第二个 Web 应用程序项目。第一个仍在部署中。第二个没有。我仍然找不到要部署的设置。

0 投票
1 回答
3964 浏览

deployment - 如何使用 TFSBuild for MVC 应用程序设置持续部署?

我对将 MVC Web 应用程序部署到不同环境的最佳机制有一些疑问。以前我使用设置项目(.msi),但由于这些在 VS2012 中已停止使用,我希望转向替代方案。

让我解释一下我目前的设置。我目前有一个使用 TFSBuild 2010 和 Team Foundation Server 进行源代码控制的 CI 设置。

许多开发人员在他们的本地计算机上工作并签入 TFS 服务器。我们定期部署到单服务器开发环境和具有 2 台服务器的负载平衡 qa 环境。我们当前的流程包括安装一个 msi,它执行以下一些自定义操作:

  • 使用 app_offline.htm 文件使当前应用脱机
  • 在数据库脚本中运行(来自解决方案中的数据库项目)
  • 修改 web.config(每个 qa 的 web 服务器不同)
  • 标记代码
  • 通过 http 请求预热每个部署的文件
  • ETC

这是当前的过程。现在我想做一些改变。首先,我需要MSI的替代品。根据 som 研究,我认为通过 IIS 进行 Web 部署并使用 MsDeploy 是最好的选择。我可以使用 Web 配置转换来修改 Web 配置。这是正确的吗?如果是,我可以大致了解我需要做什么吗?

其次,我想通过 TFSBuild 设置持续交付,我不知道如何实现这一点,是否可以大致了解如何将它集成到我当前的设置中?我希望它在签入后由用户驱动,而不是签入驱动。此外,这是否也可以在解决方案中的数据库项目的数据库脚本中运行。

最后,还有一个生产环境,但我想手动部署这个——我的过程是否也可以产生一个我可以手动安装的工件?

0 投票
1 回答
1805 浏览

plugins - Jenkins问题将构建文件复制到Windows共享

我是 Jenkins 的新手,我终于使用 Jenkins 创建了一个成功的构建。我已经安装了 jenkins-CIFS 发布者插件,将这个“jar”文件从原始位置移动到另一个 Windows 服务器(server1)。

我已经成功创建了 CIFS 共享并测试了配置。作为后期构建步骤,我正在尝试添加选项 - “将文件发送到窗口共享”。

问题是我不知道如何概括 jar 文件的源位置。

我的 jar 位置是 C:\Documents and Settings\username.jenkins\jobs\web-application\modules\com.app$drup\builds\2012-09-25_23-23-45\archive\drup.jar

作为后期构建步骤,我希望将最新的 jar(无论日期和时间)移至其他 Windows 服务器。

我还需要(如果可能的话)让詹金斯首先连接到 Windows 服务器;然后重命名现有的 drup.jar ;然后将新创建的drup.jar 复制到windows server(server1)。

有人可以提供帮助吗?

0 投票
2 回答
217 浏览

continuous-integration - 如何确定部署缓慢的应用程序是否正确部署?

我有一个构建应用程序的 Jenkins 项目,然后,如果成功,将应用程序复制到我们的测试环境并重新启动 Tomcat 服务器。Tomcat 启动大约需要 90 秒。如何自动和/或以编程方式检查 Tomcat 启动是否成功,以便触发部署到我们的暂存环境?我们有一个我可以监控的监控 URL,但我不知道如何在 Jenkins 中实现它。

0 投票
1 回答
314 浏览

azure - 从 github 发布到 azure 网站时自动运行测试?

如果我将我的天蓝色网站绑定到 TFS,我可以配置构建以在项目中运行单元测试。但是,从 github 发布时,我似乎找不到类似的选项。我错过了什么吗?

我的网站发布得很好,但是根据我在日志中看到的信息,我很确定测试没有被执行。在我的不成文的书中,持续集成要求所有测试都执行并通过,然后才能将构建推送到生产中。

0 投票
1 回答
800 浏览

asp.net-mvc - TFS2010 msbuild msdeploy 未经授权的错误

感谢有关以下问题的任何指导或建议

我正在使用 TFS2010 及以下的 msbuild 参数来在登台服务器上部署构建(持续部署)。我已经完成了所有必要的配置,例如

管理服务委托

管理服务

文件系统权限

IIS 管理员权限

msbuild 参数

有以下错误。如何解决?以及如何从链接中删除 https 并使用详细参数查看详细错误。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (3588):Web 部署任务失败。( https://stagingserver:8172/msdeploy.axd?site=cddemo无法联系远程代理(URL)。确保远程代理服务已在目标计算机上安装并启动。)确保站点名称、用户名和密码正确。如果问题仍未解决,请联系您的本地或服务器管理员。https://stagingserver:8172/msdeploy.axd?site=cddemo错误详细信息:无法联系远程代理 (URL )。确保在目标计算机上安装并启动了远程代理服务。收到了不受支持的响应。响应标头“MSDeploy.Response”为“”,但应为“v1”。 远程服务器返回错误:(401) Unauthorized。