All threads / GitHub Actions with Ruby on Rails: Setting up Continuous Integration Discussion

Ask A Question


You’re not receiving notifications from this thread.

GitHub Actions with Ruby on Rails: Setting up Continuous Integration Discussion

Congratulations on the video was very good, I will try today


I guess part of Continuous Integration is pushing the chanegs to production once the tests succeed.

Any suggestions on how to push to Heroku from within GitHub actions?

It's of course possible to configure this in Heroku, but I'm curious how to this from GitHub as it would allow you to then also run commands like database migrations after deployment.

Can't you just do this with automatic deploys in Heroku?

There are probably ways to do it, but I'd be prefer my CI setup to be self contained. For example I'm using Codeship right now which runs the tests, deploys to Heroku, runs migrations, and checks whether the site is still up.

I'm sure the same is possible with GitHub Actions, but I'm not just not sure how to push to the Heroku git repository from within GitHub.

You'd just use the Heroku action as the last step I believe:

Thanks. Would love to see an episode on that, as I think most people aren't used to doing Docker Deploys on Heroku.


Anybody has gotten github actions to work on the latest versions of Ruby? (2.6.4, 2.6.5)? Looks like the setup-ruby action has been outdated for a cople of months now.

Still waiting on them to release those Ruby versions. You can use a Ruby Docker image instead or compile and cache Ruby as part of the steps. Other than that, we just have to wait for 2.6.5 support to use setup-ruby. :(

Yeah I was trying that too!! It works fine for running regular tests I think, but it looks like you'd have to do a bit of an extra setup for system tests and chromedriver-helper. Have you had any luck running system tests?


Looks really interesting, thank you so much!


Thank you for Sharing This.


I was having issues with that YML file. This is my working versions. I use Rails, Postgresq, Redis, RSpec.

name: Continuous integration
on: [push, pull_request]
runs-on: ubuntu-latest
image: postgres:[email protected]:85d79cba2d4942dad7c99f84ec389a5b9cc84fb07a3dcd3aff0fb06948cdc03b
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
image: redis
ports: ['6379:6379']
options: --entrypoint redis-server

  - uses: actions/[email protected]
  - name: Setup Ruby
    uses: actions/[email protected]
      ruby-version: 2.7
  - name: Build and test with Rake
      RAILS_ENV: test
    run: |
      sudo apt-get -yqq install libpq-dev
      gem install bundler
      bundle install --jobs 4 --retry 3
  - name: Db create Migrate
      DATABASE_URL: postgres://postgres:@localhost:5432/test
      REDIS_URL: redis://localhost:6379/0
      RAILS_ENV: test
    run: | 
      bundle exec rails db:schema:load
      bundle exec rspec ./spec
Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 41,443+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2021 GoRails, LLC. All rights reserved.