2013-04-10 139 views
11

我有一个web应用程序http://codefu-5euzxjdg6b.elasticbeanstalk.com/codeKungfu.jsp,它目前托管在具有Java后端的Amazon Elastic Beanstalk上。Travis CI与Amazon Elastic Beanstalk

的流动过程中,我心目中是这样的:

  • 提交到GitHub库
  • 特拉维斯CI被触发。运行单元测试。
  • 所有测试用例均通过。部署在Amazon弹性beanstalk上。

目前,我被卡在第3步,在那里我试图连接特拉维斯CI与亚马逊弹性beanstalk。

我已经在网上搜索了相关信息,但无法找到任何似乎有用的信息。我得到的最好的信息来源是: https://superuser.com/questions/510593/elastic-beanstalk-rails-application-with-git-source-and-deploy-hooks

据我所知,特拉维斯CI是能够直接部署到谷歌应用程序引擎,因此我认为,应该有亚马逊弹性魔豆的解决方案也是如此。

任何人都可以友好地指向我可能有助于解决此问题的资源吗?

谢谢!

回答

2

你最终在这方面取得了进展吗?我认为应该可以使用Travis的加密变量来存储密钥或AWS证书。然后,您可以将这些凭据与AWS API一起使用,从您的.travis.yml after_script节中进行自我部署。

23

随着2014年12月9日的,弹性魔豆的部署不涉及特拉维斯CI部署文档中: http://docs.travis-ci.com/user/deployment/

然而,特拉维斯CI已经开源了他们的部署工具:DPL和弹性魔豆的部署是一个持续发展: 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 
+0

感谢这个答案,这绝对应该是公认的答案。只需设置这个确切的东西,它就像一个魅力。谢谢@Jon – David 2014-12-11 15:08:26

+0

嘿!你是如何加密'secret_access_key'的?因为通常你需要在加密Travis上的东西时提供一个键/值对。当您为AWS秘密访问密钥生成“安全”值时,您作为加密密钥输入了什么内容? – 2015-05-26 13:16:52

+0

你可以参考这里的文档:http://docs.travis-ci.com/user/encryption-keys/ – Jon 2015-05-28 07:29:22