Travis-CI使用dpl deploy tool部署您的应用程序。
我做了一个fork of the repo,其中包括有关部署到AWS的许多改进。在部署之前的步骤中,我克隆了仓库并构建了gem。
我发现在edge: local
的deploy
部分下使用.travis.yml
会导致Travis将--local
添加到gem install dpl
命令中。
特拉维斯(Travis)应该在当前工作目录中扫描此gem,但这不能正常工作。 gem
命令无法找到新的gem。
ERROR: Could not find a valid gem 'dpl' (>= 0) in any repository
The command "rvm 1.9.3 --fuzzy do ruby -S gem install dpl --pre --local" failed and exited with 2 during .
我尝试将其复制到当前的工作目录(与
$TRAVIS_BUILD_DIR
相同)以及$HOME
中,但均无效。这是我的
.travis.yml
的depoy部分。before_deploy:
- export ELASTIC_BEANSTALK_LABEL=$(git tag --contains)
- git clone -b master https://github.com/jasny/dpl.git /tmp/dpl
- (cd /tmp/dpl && gem build dpl.gemspec && cp *.gem "$TRAVIS_BUILD_DIR")
deploy:
provider: elasticbeanstalk
edge: local
access_key_id: ...
secret_access_key:
secure: ...
region: eu-west-1
app: dms
env: dms-travis-test
bucket_name: elasticbeanstalk-eu-west-1-930677074220
bucket_path: dms
on:
branch: travis-deploy
最佳答案
在Travis构建环境中,由于ruby gems版本2.4.5导致edge: local
的使用当前已中断。
Ruby gems v1.x的--local
标志将在当前工作目录中扫描任何版本的gem。但是ruby gems v2.x不再这样做,并且需要您使用gem的文件名。
从未修改travis-build应用程序来应对此更改。
作为解决方法,您可以降级到ruby gems v1.8.30。
before_install:
- gem update --system 1.8.30
关于rubygems - 如何在Travis CI上运行dpl的自定义版本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30584467/