Skip to content

Ci/add lint and test workflows #6

Ci/add lint and test workflows

Ci/add lint and test workflows #6

Workflow file for this run

name: "Ruby on Rails CI"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
runs-on: ubuntu-latest
services:
mysql2:
image: mysql:5.7
ports:
- "3306:3306"
env:
MYSQL_DATABASE: rails_test
MYSQL_USER: rails
MYSQL_PASSWORD: password
MYSQL_TCP_PORT: 3306
MYSQL_RANDOM_ROOT_PASSWORD: true
MYSQL_ONETIME_PASSWORD: true
# Before continuing, verify the mysql container is reachable from the ubuntu host
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
env:
RAILS_ENV: test
DATABASE_URL: "mysql2://rails:password@127.0.0.1:3306/rails_test" # localhost doesn't work because the application can't connect to the linux host socket
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Ruby and gems
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
with:
bundler-cache: true
- name: Set up database schema
run: bundle exec rails db:create db:migrate
- name: Run rspec
run: bundle exec rspec
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Ruby and gems
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
with:
bundler-cache: true
# Add or replace any other lints here
- name: Run rubocop
run: bundle exec rubocop