Travis CI 和 Amazon Elastic Beanstalk 的结合

11
我有一个Web应用程序http://codefu-5euzxjdg6b.elasticbeanstalk.com/codeKungfu.jsp,当前正在使用Java后端托管在Amazon Elastic Beanstalk上。
我想要的流程如下:
  • 提交到GitHub存储库
  • 触发Travis CI。运行单元测试。
  • 所有测试用例都通过。部署到Amazon Elastic Beanstalk。
目前,我卡在第3步,正试图将Travis CI与Amazon Elastic Beanstalk链接起来。
我已经在网上搜索了相关信息,但未能找到任何有用的信息来源。最好的信息来源是: https://superuser.com/questions/510593/elastic-beanstalk-rails-application-with-git-source-and-deploy-hooks 我知道Travis CI能够直接部署到Google App Engine,因此我相信也应该有Amazon Elastic Beanstalk的解决方案。
请问有没有人可以指引我一些能帮助我解决这个问题的资源呢?
谢谢!
2个回答

22
截至2014年12月9日,Travis CI部署文档中还未涵盖Elastic Beanstalk的部署: http://docs.travis-ci.com/user/deployment/ 然而,Travis CI已开源他们的部署工具:dpl,并且Elastic Beanstalk的部署正在持续开发中: https://github.com/travis-ci/dpl 最好是参考源码本身来了解如何进行部署。
目前,在我的.travis.yml中的部署设置中,这里有一个可行的样例:
deploy:
  provider: elasticbeanstalk
  access_key_id: <AWS Access Key>
  secret_access_key:
    secure: <secure secret access key>
  region: <region, eg. ap-southeast-1>
  app: <app name>
  env: <environment name>
  bucket_name: <S3 bucket name that is used by elastic beanstalk>
  on:
    repo: <repo name>
    branch: develop

谢谢这个答案,这绝对应该是被采纳的答案。刚刚设置了这个东西,现在它的运行非常完美。感谢@Jon。 - David
嗨!你是怎么加密secret_access_key的?因为通常在Travis上加密东西时需要提供键/值对。当你生成AWS Secret Access Key的secure值时,你输入了什么作为加密密钥? - Benny Code
您可以在此处参考文档:http://docs.travis-ci.com/user/encryption-keys/ - Jon
@Jon,“bucket_name:<Elastic Beanstalk使用的S3存储桶名称>”是什么?我在哪里可以找到它? - user606521
@user606521,您可以在S3存储桶中找到它。点击S3服务并查找以“elasticbeanstalk-”开头的存储桶。 - Jon
1
我刚刚使用了这个示例,并在第一次尝试时成功部署。Travis的输出确实表明它仍处于实验阶段。这是我的配置 https://github.com/maxbeatty/passplum/commit/12055821bbd5fb5027bfca078719d790a26db19f - maxbeatty

2

你在这方面取得了进展吗?我认为使用Travis的加密变量可以存储密钥或AWS凭据,从而可以在.travis.yml的after_script部分中使用AWS API来执行部署。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接