每次GitHub提交时触发持续交付

开发Web应用程序时,至关重要的难题是持续交付。 测试人员或用户可以通过早期使用alpha版本来促进开发过程。 设计,需求,架构或性能问题可以更快地被发现。

我将展示如何使用Maven和Jenkins来设置此过程。 目标环境托管在Tomcat7上。 源代码托管在GitHub上。 因为我是试图尽可能避免轮询的开发人员类型,所以我将展示如何通过GitHub的很酷的功能WebHooks触发此过程。

1.创建连续交货作业

创建Jenkins工作并将其与Maven集成非常容易。 会很快涵盖:

  • 使用“新建项目”->“ 创建它
  • “源代码管理”部分中设置GitHub URL(在我的情况下,无需身份验证,因为我的GitHub存储库是公共的)
  • 现在跳过“构建触发器”部分,稍后将再次介绍。
  • 使用用于构建WAR文件的POM路径和目标配置“构建”部分
  • 设置“构建设置”->“电子邮件通知”

保存并尝试运行Jenkins作业。 这是非常常见且基本的Jenkins作业配置。 现在,我们将设置将WAR文件部署到Tomcat7中。 但是,这里出现了困境。 有两种非常成熟的部署方式。 我将同时介绍两者,并让读者选择其中一个。

a)使用tomcat7-maven-plugin连续交付

  • 首先,我们需要启用对Tomcat7的访问。 编辑$ CATALINA_HOME / conf / tomcat-users.xml (CATALINA_HOME是Tomcat的主目录),并按如下所示配置角色和用户
<role rolename="manager-script"/>
<user username="deployer" password="===PASSWORD===" roles="manager-script"/>
  • 在配置文件settings.xml中为Maven配置Tomcat7凭据。 该文件通常位于<user_home> /。m2中
<server>
	<id>tomcat-server-alpha</id>
	<username>deployer</username>
	<password>===PASSWORD===</password>
</server>
  • 将tomcat7-maven-plugin设置到pom.xml中
<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
	<configuration>
		<url>http://[JENKINS-URL]/manager/text</url>
		<server>tomcat-server-alpha</server>
		<path>/[TOMCAT-DEPLOY-PATH]</path>
	</configuration>
</plugin>
  • 最后,将其他Maven目标“ tomcat7:redeploy”添加到Jenkins工作中

b)使用Jenkins Deploy插件进行持续交付

  • 安装Jenkins Deploy插件
  • 在构建WAR的Jenkins作业中,配置“添加构建后操作”->“向容器部署耳朵/战争”

詹金斯-托姆卡特部署

2. Jenkins – GitHub集成

  • 这里的阻止要求是让Jenkins服务器可以从Web访问。 如果出于某种原因不能这样做,则必须坚持在Jenkins中轮询源代码控制。
  • GitHub插件安装到Jenkins中
  • 在GitHub中为Jenkins生成个人访问令牌。 可以在“编辑个人资料”->“应用程序”下找到

github-generate-new-token

  • 设置GitHub插件以使用Jenkins中生成的令牌。 您可以在“管理Jenkins”->“配置系统”->“ GitHub Web Hook”中找到此部分。 请注意,您不需要使用密码。 API URL为“ https://api.github.com”

jenkins-github-web-hook

  • 在Github中创建WebHook。 打开存储库->“设置”->“ Webhooks和服务”->“创建Webhook”
  • 使用后缀为“ / github-webhook”的 Jenkins URL。 Jenkins将在您配置作业时自动替换,因此不需要为每个Jenkins作业创建GitHub挂钩
  • 创建后,您可以通过“最近的交付”中的三个点来测试webhook。 HTML错误代码“ 302 Found”表示它工作正常(即使GitHub用感叹号突出显示它)。

github-webhook-creation

  • 最后在Jenkins工作中启用GitHub触发

詹金斯工作触发

而已。 Github提交现在应该导致部署到Tomcat中。

资源资源

  1. Jenkins GitHub插件文档
  2. Codehous Tomcat Maven插件文档

翻译自: https://www.javacodegeeks.com/2014/03/trigger-continuous-delivery-every-github-commit.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值