Gitlab CI can be used to run rails tests on every push. It’s pretty straight forward to setup.
First create a .gitlab-ci.yml
file:
image: ruby:2.3
services:
- postgres:latest
variables:
POSTGRES_DB: dbname # set database
POSTGRES_USER: username # set username
POSTGRES_PASSWORD: ""
before_script:
- apt-get update -qy
- apt-get install -y nodejs
- bundle install --path /cache
# run tests
test:
script:
- cp config/database-gitlab.yml config/database.yml
- bundle exec rake db:create RAILS_ENV=test
- bundle exec rake test
The before_script
installs everything we need to run the tests.
test
job creates the database and executes the tests.
Next, create a gitlab specific database config config/database-gitlab.yml
to connect
to the database setup earlier.
test: adapter: postgresql
pool: 5
timeout: 5000
host: postgres
database: dbname # set database
user: username # set username
Now the tests will be run on each push!