Skip to content

Create rails_ci.yml #28

Create rails_ci.yml

Create rails_ci.yml #28

Workflow file for this run

name: "Ruby on Rails CI"
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
test:
runs-on: ubuntu-22.04
services:
postgres:
image: postgres:11-alpine
ports:
- "5432:5432"
env:
POSTGRES_DB: rails_test
POSTGRES_USER: rails
POSTGRES_PASSWORD: password
env:
RAILS_ENV: test
DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test"
steps:
- name: Checkout code
uses: actions/checkout@v3
# Set Ruby version dynamically
- name: Define Ruby version
id: ruby-version
run: echo "RUBY_VERSION=${{ github.event.inputs.ruby_version || '3.3.1' }}" >> $GITHUB_ENV
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- name: Ensure Bundler is installed
run: gem install bundler && bundle install
- name: Verify installed gems
run: bundle show rspec
- name: Set up database schema
run: bin/rails db:schema:load
- name: Run RSpec tests
run: bundle exec rspec
lint:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
# Define Ruby version dynamically for the lint job as well
- name: Define Ruby version
id: ruby-version
run: echo "RUBY_VERSION=${{ github.event.inputs.ruby_version || '3.3.1' }}" >> $GITHUB_ENV
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- name: Ensure Bundler is installed
run: gem install bundler && bundle install
- name: Lint JavaScript files
uses: actions/setup-node@v3
with:
node-version: 18
- run: npm ci
- run: npm run lint