特拉维斯部署了一个拉链而不是一个罐子

时间:2016-11-10 04:03:46

标签: java amazon-web-services elastic-beanstalk travis-ci automated-deploy

我试图从travis ci自动部署jar到aws弹性beanstalk。在我看来,travis正在上传包含源代码内容的zip文件,而不是上传内置的jar。根据文档说明如何指示travis上传jar而不是原始源代码,我不清楚。

.travis.yml

language: java
jdk:
- oraclejdk8
deploy:
    provider: elasticbeanstalk
    skip_cleanup: true
    app: OptionsTradeAnalysis
    env: ota-api-env
    file: "ota.jar"
    bucket_name: elasticbeanstalk-us-west-2-302145366589
    region: us-west-2
    access_key_id:
      secure: key
    secret_access_key:
      secure: key
    on:
      repo: melchoir55/OptionsAnalysis
      branch: master

这是beanstalk的输出。它详细说明了在尝试执行上传的travis文件时遇到的问题:

Beanstalk错误日志

Application update failed at 2016-11-10T03:52:56Z with exit status 1 and error: Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/01_configure_application.sh failed.

Executing: /usr/bin/unzip -o -d /var/app/staging /opt/elasticbeanstalk/deploy/appsource/source_bundle
Archive: /opt/elasticbeanstalk/deploy/appsource/source_bundle
inflating: /var/app/staging/.gitignore 
inflating: /var/app/staging/.gradle/2.13/taskArtifacts/cache.properties 
inflating: /var/app/staging/.gradle/2.13/taskArtifacts/cache.properties.lock 
inflating: /var/app/staging/.gradle/2.13/taskArtifacts/fileHashes.bin 
inflating: /var/app/staging/.gradle/2.13/taskArtifacts/fileSnapshots.bin 
inflating: /var/app/staging/.gradle/2.13/taskArtifacts/taskArtifacts.bin 
inflating: /var/app/staging/.travis.yml 
inflating: /var/app/staging/LICENSE 
inflating: /var/app/staging/README.md 
inflating: /var/app/staging/build.gradle 
inflating: /var/app/staging/gradle/wrapper/gradle-wrapper.jar 
inflating: /var/app/staging/gradle/wrapper/gradle-wrapper.properties 
inflating: /var/app/staging/gradlew 
inflating: /var/app/staging/gradlew.bat 
inflating: /var/app/staging/settings.gradle 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/Application.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/api/ApiConstants.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/api/resourceController/OptionTransactionController.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/api/resourceController/VersionController.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/database/dao/OptionDao.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/database/dao/OptionTransactionDao.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/database/dao/PriceDao.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/database/dao/StockDao.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/Analysis/PercentageGain.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/Analysis/TimeRange.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/ModelUtils.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/Option.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/OptionPrice.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/OptionTransaction.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/Price.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/Stock.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/StockPrice.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/TransactionAnalysis.java 
inflating: /var/app/staging/src/main/java/com/zowda/optionsAnalysis/model/User.java 
inflating: /var/app/staging/src/main/resources/application.properties 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/api/ApiTestUtils.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/api/resourceController/OptionTransactionControllerTest.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/api/resourceController/VersionControllerTest.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/database/DatabaseBasicsTest.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/model/analysis/PercentageGainTest.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/model/analysis/TimeRangeTest.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/model/testFactories/OptionTransactionTestFactory.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/model/testFactories/PercentageGainTestFactory.java 
inflating: /var/app/staging/src/test/java/com/zowda/optionsAnalysis/test/model/testFactories/TimeRangeTestFactory.java 
inflating: /var/app/staging/src/test/resources/application.properties 
Unable to launch application as the source bundle does not contain either a file named application.jar or a Procfile.
Unable to launch application as the source bundle does not contain either a file named application.jar or a Procfile.
Incorrect application version "travis-d1bff950714be0a82e46a827346ada041aa71aad-1478749923" (deployment 6). Expected version "Sample Application" (deployment 1).

请注意我也尝试在没有file参数的情况下运行它,因为我不清楚该参数的作用。我得到了相同的结果。正如你在这里看到的,我假设参数用于命名travis正在部署的文件,但根据我的行为,我认为我可能是错的。在我看来,开发人员可以指定要上传的文件的位置,但我不知道travis在哪里放置构建的jar。

1 个答案:

答案 0 :(得分:2)

最终,这里有两个问题。第一个是gradle实际上没有输出一个罐子。我修改了build.gradle来做到这一点。其次,看起来弹性豆秆支持不是用java(或任何编译语言)创建的。也就是说,仍有可能让它发挥作用。关键字段为selected。此字段最好命名为zip_file甚至archive,因为您可以传递罐子,战争,拉链或任何您喜欢的内容。以下file为我工作:

<强> .travis.yml

.travis.yml

请注意,language: java jdk: - oraclejdk8 deploy: provider: elasticbeanstalk skip_cleanup: true app: OptionsTradeAnalysis env: ota-api-env zip_file: 'build/libs/OptionsAnalysis-1.0.jar' bucket_name: elasticbeanstalk-us-west-2-302145366589 region: us-west-2 access_key_id: secure: key secret_access_key: secure: key on: repo: melchoir55/OptionsAnalysis branch: master 中指定的路径是gradle相对于工作目录输出构建jar的路径。