页面树结构

什么是持续交付?

持续交付不仅是构建和测试生命周期的自动化,也在软件开发交付的整个生命周期中,客户随时就可以收到您所构建的软件。能够自动化的一切都被自动化了!这个过程被经常实践——目标是尽快将可用的软件交付给客户。 

自动化和重复这些生命周期加速了软件交付并减少了出错的机会。一次传统的发布可能会包含500个用户从未使用的修改,但是持续交付模型中一次发布只会包含5到10个修改。这个区别减少了交付给客户的新版软件中包含的风险。因为构建、测试和最终交付给顾客都是自动化的过程,所以如果错误存在,您可以快速发布该软件的一个新的、已经修复了的版本。

持续交付与持续部署之间的区别是什么?

持续部署,发生在开发生命周期的部署阶段自动在测试阶段之后,无需人工干预,也与业务关注点(例如:版本管理、市场营销等)无关。

持续交付,允许团队自动化整个软件生命周期,但团队需要选择何时执行部署阶段。为了满足业务所关注的市场启动、版本规划、或者发布的供货日期等,由于它使组织能够选择何时发布软件,持续交付这种方式更可取。  

将您的构建打造成一台精益生产、清晰透明的交付机器

大多数持续集成构建首先是一个构建、测试和打包该软件的独立步骤。在准备阶段,小的构建易于设置并且能非常快速地执行。随着时间的推移,当团队添加更多的单元和功能测试时,这些构建开始针对多个平台开始打包步骤,变得更加复杂并增加构建时间。从做出修改到收到回馈之间的时间也会增加,这使开发团队花费宝贵的时间来维护构建,而不是将工作时间花在功能或其它的任务上。

为了解决这个问题,Bamboo允许开发人员将构建和测试阶段拆分成不同的Bamboo阶段。Bamboo在一个阶段可以只有一项单独的工作,编译和打包该软件。然后已经打包好的软件就会执行另一个阶段——测试。因为构建工作能够以并行方式执行,意味测试也可以分解到不同的构建工作并行运行,从而显著减少测试所需时间。 

一般来说,每个工作的执行时间不应超过10-15分钟。一旦超过这个阈值,我们建议将该工作分解成2个或更多的工作来减少执行时间。

在阶段之间共享文件

为保证阶段之间传递文件,Bamboo提供一项称为工件共享 Artifact Sharing的功能。工件就是作为该构建的结果而产生的文件。为了让Bamboo捕捉和共享这些文件,您将需要为已创建工件Artifact的构建工作Job创建一个工件定义Artifact Definition。 


为了创建一个工件定义,请在工作配置Jobs configuration页面的工件Artifacts中查找。点击创建定义Create Definition,给该工件起一个容易识别的名字,然后定义该工件在文件系统中的位置。为了与其它阶段分享该工件,确保您勾选了“分享 Shared ”复选框。 

当工作建立起来以后,该工件将会根据计划结果保存。为了能让包含在以后的阶段中工作能够使用这些工件,它们必须使用工件依赖来订阅该工件。

为了创建工件依赖,进入工作配置的工件部分,然后点击创建依赖Create Dependency。从可供共享的工件清单中选择该工件,然后提供一个目标路径。当该工作执行时,Bamboo将会自动下载指定的、由以前的阶段生成的工件,并将它放在指定的文件夹中。

开始交付

一个人工阶段Manual Stage只有当用户指令Bamboo这样做的时候才会执行。他们在持续交付这样的情况下非常有用。在这种情况下,不是每个构建都会交付给客户——由业务来决定。多个人工阶段也可能这样,以防每个步骤都需要人工确认和签字核准。

添加一个人工阶段非常容易。导航到您的计划配置的阶段选项卡,然后点击创建阶段按钮。接着为您的阶段起个名字并反选人工复选框。 

在人工阶段中,您现在可以添加一项工作: 

  • 将您的网络应用部署到一台应用服务器上(例如Tomcat 或 JBoss)
  • 使用sftp或ftp将文件上传到您的网站
  • 将一项 Puppet 或 Chef 配置应用到您的服务器上
  • 执行其它任何可编写脚本的活动,将您的软件交付给用户

通过人工阶段及其合适的工作,无论何时执行您的构建,它都会在您所创建的人工阶段停止。状态图标不再显示为成功图标,但仍会显示部分成功图标,表明构建已经停止,等待用户的人工干预。

为了继续执行人工阶段,导航回到您希望部署的构建结果,并点击计划导航条中的开始按钮。该构建会从那一点处继续执行。如果一切都正确地自动化了,那么您的软件现在将在您的客户手中。 

点击一下就在JIRA中发布

持续发布并不只适用于开发人员,项目经理也同样可以找到该实践的好处。如果在JIRA和Bamboo服务器之间存在一个应用链接,那么您可以在Bamboo中直接从JIRA执行该过程的部署步骤。 

在JIRA中,导航到您希望发布的版本,点击发布Release 选项卡,然后点击发布Release按钮。JIRA就会提供发布该JIRA版本的多个选项,既可以通过运行一个新的Bamboo构建、从一个人工阶段继续一次构建、或者不运行任何构建。一旦构建成功完成,JIRA版本就会从未发布变成已发布。


 

  • 无标签