问题标签 [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.
java - 如果底层 jar 被替换,Java 程序崩溃
我有一个软件,包含在一个正在执行其工作的 .jar 中,但有时我需要快速推送一个错误修复,需要在中心位置替换 .jar 文件,不幸的是,如果当前正在执行这个 jar文件,如果我替换它,那么它会因“找不到类”错误而崩溃。我认为一旦执行了 jar 文件,JVM 会将其缓存在内存中,并且不会从磁盘读取任何内容,但显然情况并非如此,如何(如果可能的话)对此进行补救?
编辑:
该应用程序不是基于 Web 的。这是普通的Java SE。
chef-infra - 用刀从 ChefServer 下载角色和食谱
鉴于我开始使用 Chef 服务器管理控制台与 Chef 合作,现在我想开始使用文件并通过刀上传它们。有没有办法通过刀检索存储在 ChefServer 上的角色和环境,所以我可以将它们放入 git 中?
sql - 如何持续交付基于 SQL 的应用程序?
我希望将持续交付概念应用于我们正在构建的 Web 应用程序,并想知道是否有任何解决方案可以保护数据库免受意外错误提交。例如,擦除整个表而不是单个记录的错误。
根据持续交付理论,如何限制这个问题的影响,其中应用程序逐渐部署在基础设施的各个部分上?
有任何想法吗?
jenkins - 在 jenkins 上持续部署基于 OSGi 的应用程序
在花了几个小时试图了解如何在基于 OSGi 的应用程序的情况下进行持续部署之后,我终于在 stackoverflow 上提出了我的第一个问题,希望能找到一些迹象表明我可能做错了什么或错过了什么——不知何故感觉走错路了。。。
这就是我想要实现的目标:
构建一些包并将它们安装到 maven 存储库(这里没问题,使用 bnd)
现在有了构成我的应用程序的所有包(通过所有测试等),我想部署和运行应用程序,即使用这些包启动一些 OSGi 框架。
开始不是问题——“mvn pax:provision -Dframework=equinox”可以解决问题。我的应用程序启动了 jetty,因此很容易通过浏览器进行验证以查看一切是否正常(除了所有测试)
但是,现在,尝试“连续”,下次我想应用这个过程时,我真的应该确保首先关闭我的应用程序的运行实例(至少释放正在使用的端口)。所以,要重新运行一切,我必须先关闭旧的安装。
这就是我的问题开始的地方:有什么可以帮助我解决这个问题吗?我知道有maven-deploy-plugin,但这似乎只有在将一些 WAR/EAR 文件部署到一些标准应用程序容器中时才有用(似乎不需要重新启动它)。
我真的只需要运行一些脚本来启动OSGi 环境——然后,下一次,在我再次启动它之前优雅地关闭它。用tomcat、jetty、jboss之类的,有一些shutdown.sh脚本或者mvn jetty:stop指令,但是真的要自己写那种脚本吗?这就是我认为我开始走错路的地方,我猜肯定有人在我之前遇到过这些问题并解决了它们;)
我知道我可以以某种方式尝试使用JMX或使用telnet 控制台来访问正在运行的实例以发出“stop 0”命令,但这感觉不对。
从詹金斯开始的进程应该编译/构建/部署项目,但我猜不是启动长时间运行的线程,所以我必须以某种方式启动一些“外部”进程,我想在下次再次尝试时首先杀死它。
有任何想法吗?也许我错过了什么?提前感谢您对此的任何意见!
ios - iOS 上的部署自动化?
有没有人有使用一个统一的工具来处理 Java 服务器端 + iOS 包文件创建部署自动化的经验?必须能够插入到像 Hudson/TeamCity 这样的持续集成引擎中。同样可取的是与 TestFlight 等工具的集成。
我正在寻找与 UrbanDeploy、Nolio 等工具等效的工具。这里有任何可用和使用的开源工具吗?
干杯,萨文德
deployment - 适用于不同平台、中间件、技术的持续部署工具,具有指标和报告
有哪些可与 UrbanCode uDeploy、Noliosoft ZeroTouch 和 XebiaLabs Deployit 相媲美的持续部署工具?我尝试将应用程序部署到的环境是多操作系统(Linux、Windows Server)、各种类型的中间件(Websphere、Weblogic、Jboss、Tomcat、Apache、IIS、BizTalk)、不同的数据库(Oracle、MySQL、MSSQL),并包括不同类型的应用程序打包(.war、.jar、.conf、.xml、.zip、.exe、.msi)。我也从文件系统而不是 Maven 存储库中提取(但将来需要与 Maven 集成)。我已经构建了一个 Maven-cargo 部署流程,但部署工程师想要一个基于 GUI 的工具,可以收集指标。我尝试了 Webistrano 部署,但无法让 .NET、IIS 和 .msi 部署正常工作(我知道 - 它不适用于这些平台)。我有 Red Hat JON,但它不允许部署到 Windows。SCCM?谷氨酸?八达通部署?夸提?
python - 同时提供代码和数据库
我使用fabric将我的代码的新版本上传到服务器,然后它运行几个任务以使其服务于新版本而不是旧版本。
在这些任务中还有一个同步数据库,但这意味着有一个窗口,其中我有带有旧数据库表的新代码版本(或带有新同步数据库的旧代码版本)。
问题: 我是否需要手动复制数据库,与副本同步,然后一次性替换旧代码版本和原始数据库?
由于这似乎是一个非常普遍的问题,我认为应该已经有工具或特定的方法来解决这个问题。有人知道吗?
(我的另一个担心是部署期间的某些事情可能会出错,我想回退到以前的状态,而不会出现未与代码同步的损坏数据库)。
ruby-on-rails - 如何在 Heroku Rails 应用程序中显示“上次部署”时间戳?
我想更新一个环境变量或其他东西来跟踪当前活动的部署时间。有什么方法可以从我在 Heroku 上的应用程序中自动执行此操作,还是我必须将其作为部署脚本的一部分来执行?理想情况下,我想要使用 TDDium for CI 与我一起工作的东西,并让他们在构建通过时为我推送到 Heroku。
deployment - 通过 Jenkins 作业将多个战争部署到多个远程容器
嗨,我正在使用 Jenkins 构建并部署到远程容器。到目前为止,我的 maven 工作通过一个父 pom 构建 5 个 webapp,并将所有战争部署到一个远程容器中。
截至目前,我正在使用部署插件,它允许将战争部署到单个远程容器。
现在我想把每场战争放到一个不同的远程容器中。请让我知道任何可用的插件或用于指定部署每个战争文件的位置的任何脚本。
谢谢
hudson - 如何使用 Nexus 和 Jenkins 实现持续部署
我正在尝试实现一个持续部署系统,但我似乎无法为我们的问题找到一个好的答案。我们使用 Jenkins 运行 maven 构建来生成我们的工件并将它们部署到 Nexus。我看到一些项目将所有内容捆绑到单个 war 或 tar 文件中,按名称从 Nexus 中提取每个请求的一个文件并将其部署到应用程序服务器,但这需要他们事先知道他们有哪些版本可用。我的项目有很多 jars/wars/binaries 以及其他工件,它们没有使用应用程序服务器进行部署。我们想要做的是能够从nexus 中提取软件的任何快照或发布版本,并生成安装包或将其直接传送到远程服务器。
澄清:我希望 QA 或开发能够从 Jenkins 中选择一个版本;Jenkins 将在其中轮询 Nexus 以获取可用版本,然后从 Nexus 自动部署到服务器。
是否有一种简单的联系/行家方式将软件输出到测试系统?
那么,有没有办法通过 ant/ivy、Jenkins、maven、gradle 轮询 nexus 以确定哪些修订可用?如果有帮助我会写点别的。
我看到这里问了一个类似的问题:How do I choose an artifact from Nexus in a Hudson / Jenkins job? ,但 9 个月后仍未得到答复。