我如何在 Travis CI 上 运行 自定义版本的 dpl?

How can I run a custom version of dpl on Travis CI?

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

我做了一个 fork of the repo,其中包括一些关于部署到 AWS 的改进。在之前的部署步骤中,我克隆了 repo 并构建了它们 gem.

我发现在 .travis.ymldeploy 部分下使用 edge: local 会导致 Travis 添加 --localgem 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.

的部署部分
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

edge: local 的使用目前在 Travis 构建环境中被破坏,原因是 ruby gems 版本 2.4.5。

Ruby gems v1.x --local 标志将扫描当前工作目录以查找任何版本的 gems。但是 ruby gems v2.x 不再这样做并且要求您使用 gem.

的文件名

从未修改 travis-build 应用程序来应对此更改。

作为解决方法,您可以降级到 ruby gems v1.8.30.

before_install:
- gem update --system 1.8.30