.github/workflows/cm42-central.yml
# This workflow will install a prebuilt Ruby version, install dependencies, and
# run tests and linters.
name: 'CM42 Central CI'
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
unit-tests:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11-alpine
ports:
- '5432:5432'
env:
POSTGRES_DB: rails_test
POSTGRES_USER: rails
POSTGRES_PASSWORD: password
redis:
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- '6379:6379'
env:
CI: true
RAILS_ENV: test
DATABASE_URL: 'postgres://rails:password@localhost:5432/rails_test'
MAILER_SENDER: noreply@example.com
CLOUDINARY_URL: cloudinary://username:password@localhost
steps:
- name: Checkout code
uses: actions/checkout@v2
# Add or replace dependency steps here
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.8
- name: Run bundle install
run: bundle install
# Add or replace database setup steps here
- name: Set up database schema
run: bin/rake db:setup
# Add or replace test runners here
- name: Run tests
run: bin/bundle exec rspec spec/ --exclude-pattern "spec/features/*"
javascript-tests:
runs-on: ubuntu-latest
env:
CI: true
steps:
- name: Checkout code
uses: actions/checkout@v2
# Add or replace dependency steps here
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: 20.17.0
cache: 'yarn'
- name: Install JS dependencies
run: yarn install
# Add or replace test runners here
- name: Run tests
run: npm test
feature-tests:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11-alpine
ports:
- '5432:5432'
env:
POSTGRES_DB: rails_test
POSTGRES_USER: rails
POSTGRES_PASSWORD: password
redis:
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- '6379:6379'
env:
CI: true
RAILS_ENV: test
DATABASE_URL: 'postgres://rails:password@localhost:5432/rails_test'
MAILER_SENDER: noreply@example.com
CLOUDINARY_URL: cloudinary://username:password@localhost
steps:
- name: Checkout code
uses: actions/checkout@v2
# Add or replace dependency steps here
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.8
- name: Run bundle install
run: bundle install
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: 20.17.0
cache: 'yarn'
- name: Install JS dependencies
run: yarn install
# Add or replace database setup steps here
- name: Set up database schema
run: bin/rake db:setup
# Add or replace test runners here
- name: Run tests
run: bin/bundle exec rspec spec/ --pattern "spec/features/*"