0

I'm trying to deploy an existing Rails app to Heroku, having the Ruby version upgraded from 2.7.1 to 3.1.2. Also updated bundler to 2.3.25 which seems to be supported by Heroku.

Everyting runs smoothly (build, tests, etc), except for the POST deploy steps, (the app gets deployed to Heroku, but it returns an error which causes the pipeline to fail).

GitLab CI Logs:

  Released v819
       https://my-app-example.herokuapp.com/ deployed to Heroku
Running "bundle exec rails db:migrate"
Already up to date!
HEAD detached at 89d25d5
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    vendor/ruby/
nothing added to commit but untracked files present (use "git add" to track)
Dropped refs/stash@{0} (01235a1234039bbade856ddb025e053ca1234c2d)
/usr/local/bundle/gems/rendezvous-0.1.3/lib/rendezvous.rb:44:in `start': uninitialized constant Rendezvous::StringIO (NameError)
      if input.is_a?(StringIO)
                     ^^^^^^^^
    from /usr/local/bundle/gems/rendezvous-0.1.3/lib/rendezvous.rb:28:in `start'
    from /usr/local/bundle/gems/dpl-heroku-1.10.16/lib/dpl/provider/heroku/generic.rb:86:in `run'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/provider.rb:205:in `block (2 levels) in deploy'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/cli.rb:41:in `fold'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/provider.rb:205:in `block in deploy'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/provider.rb:201:in `each'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/provider.rb:201:in `deploy'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/cli.rb:32:in `run'
    from /usr/local/bundle/gems/dpl-1.10.16/lib/dpl/cli.rb:7:in `run'
    from /usr/local/bundle/gems/dpl-1.10.16/bin/dpl:5:in `<top (required)>'
    from /usr/local/bundle/bin/dpl:25:in `load'
    from /usr/local/bundle/bin/dpl:25:in `<main>'
Cleaning up project directory and file based variables
00:02
ERROR: Job failed: exit code 1

I thought there are some old dependencies being cached, but it didn't help clearing the pipeline cache.

Edit:

Found the same issue raised here, but still no solutions: https://github.com/travis-ci/dpl/issues/1264

ovidiuanca
  • 1
  • 1
  • 1
  • Have you tried adding a `require 'stringio` in the file in which use the `rendezvous` gem? – spickermann Nov 25 '22 at 12:53
  • @spickermann, the `rendezvous` gem apparently is a dependency inside `dpl` gem, which is used for deploying to Heroku and I don't control the code there. – ovidiuanca Nov 25 '22 at 14:47
  • 1
    Your dpl version is quite old, older than your Ruby version. Did you consider trying the latest beta? – spickermann Nov 25 '22 at 15:25

1 Answers1

0

Got this working by installing faraday gem.

In Gitlab CI:

 - gem install dpl
 - gem install faraday -v 1.8.0
...

ovidiuanca
  • 1
  • 1
  • 1