Travis 部署一个 zip 而不是一个 jar
Travis deploys a zip instead of a jar
我正在尝试将 jar 从 travis ci 自动部署到 aws elastic 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
这是 beantalk 的输出。它详细说明了它在尝试执行 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 正在部署的文件,但根据我得到的行为,我认为我可能是错的。我突然想到,开发人员可以指定 cify 要上传的文件的位置,但我不知道 travis 在哪里 placing 构建的 jar。
最终,这里有两个问题。第一个是 gradle 实际上并没有输出一个 jar。我修改了 build.gradle 来做到这一点。其次,似乎 elasticbeanstalk 支持并不是在考虑 java (或任何编译语言)的情况下创建的。也就是说,仍然有可能让它发挥作用。关键字段是 zip_file
。该字段最好命名为 archive
甚至 file
,因为您可以传递 jars、wars、zip 或任何您喜欢的内容。以下 .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输出构建的jar相对于工作目录的路径
我正在尝试将 jar 从 travis ci 自动部署到 aws elastic 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
这是 beantalk 的输出。它详细说明了它在尝试执行 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 正在部署的文件,但根据我得到的行为,我认为我可能是错的。我突然想到,开发人员可以指定 cify 要上传的文件的位置,但我不知道 travis 在哪里 placing 构建的 jar。
最终,这里有两个问题。第一个是 gradle 实际上并没有输出一个 jar。我修改了 build.gradle 来做到这一点。其次,似乎 elasticbeanstalk 支持并不是在考虑 java (或任何编译语言)的情况下创建的。也就是说,仍然有可能让它发挥作用。关键字段是 zip_file
。该字段最好命名为 archive
甚至 file
,因为您可以传递 jars、wars、zip 或任何您喜欢的内容。以下 .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输出构建的jar相对于工作目录的路径