Skip to content

Revive PR#1067

Revive PR#1067 #571

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize]
workflow_dispatch:
env:
RAILS_ENV: test
CI: "true"
RUBYOPT: "-W0"
SECRET_KEY_BASE: "secret_key_base"
PARALLEL_WORKERS: 1
jobs:
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
test: [test, system]
include:
- test: test
command: test
- test: system
command: test:system
services:
postgres:
image: postgres:11
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- uses: nanasess/setup-chromedriver@v2
if: matrix.test == 'system'
- name: Setup fonts
run: |
sudo apt-get update -y
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install gsfonts
sudo fc-cache -f -v
- uses: actions/setup-node@v3
with:
node-version: 20.x
- uses: actions/cache@v2
with:
path: "**/node_modules"
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn install --frozen-lockfile
- run: bin/rails assets:precompile
- name: Setup database
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: |
bundle exec rake db:test:prepare
- name: Run tests
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: |
bundle exec rails ${{ matrix.command }}
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# if: ${{ matrix.test == 'system' && failure() }}
- uses: actions/upload-artifact@v3
if: ${{ matrix.test == 'system' && failure() }}
with:
path: |
tmp/screenshots
test/reports
log/test.log
run-scripts:
name: Run bin/setup and bin/reset scripts
runs-on: ubuntu-latest
timeout-minutes: 30
services:
postgres:
image: postgres:11
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Run bin/setup script
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: ./bin/setup
- name: Run bin/reset script
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: ./bin/reset
StandardRB:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: StandardRB
run: bundle exec standardrb
ERBLint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: ERB Lint
run: bundle exec erblint --lint-all