3

我想从travis ci自动部署一个jar到aws弹性beanstalk。在我看来,像travis正在上传一个包含源代码内容的zip文件,而不是上传构建的jar。根据文档,我不清楚如何指示travis上传jar而不是原始源代码。特拉维斯部署一个zip而不是一个罐子

.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 

这里是从豆茎的输出。它详细介绍了试图执行的文件上传特拉维斯时遇到的问题:

青苗错误日志

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。

+0

Travis中的弹性豆杆支撑是否实验?到目前为止,这就是我所看到的。如果你有文档,或许我们可以进一步提供帮助。不过,我想我会避免使用实验性功能。您可以使用Travis S3功能将文件zip或jar推送到S3。然后将AWS CodePipeline设置为部署到ElasticBeanstalk。这是所有原生功能和易于设置。 –

+0

虽然这很公平,但对于AWS CodeDeploy存在同样的问题(我假设您的意思是CodeDeploy而不是CodePipeline)。 CodeDeploy配置似乎希望你指定包(jar的位置)。我不知道Travis在哪里存储构建的jar,并且文档没有给我一个方法来弄清楚,我可以看到。 – melchoir55

回答

2

最终,这里有两个问题。第一个是Gradle实际上并没有输出一个罐子。我修改了build.gradle来做到这一点。其次,看起来,elasticbeanstalk支持不是用java(或任何编译语言)创建的。也就是说,它仍然有可能得到它的工作。关键字段是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 

注意,在zip_file指定的路径是到gradle这个内置相对于工作目录罐子输出。

相关问题