Travis-CI使用dpl deploy tool部署您的应用程序。

我做了一个fork of the repo,其中包括有关部署到AWS的许多改进。在部署之前的步骤中,我克隆了仓库并构建了gem。

我发现在edge: localdeploy部分下使用.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/

10-11 09:10
查看更多