2013-04-10 155 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