Skip to content

Sort the members with overdue items report by most overdue and add borrow policy filters #1719

Sort the members with overdue items report by most overdue and add borrow policy filters

Sort the members with overdue items report by most overdue and add borrow policy filters #1719

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize]
workflow_dispatch:
env:
CI: "true"
RUBYOPT: "-W0"
SECRET_KEY_BASE: "secret_key_base"
PARALLEL_WORKERS: 1
jobs:
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 30
env:
RAILS_ENV: test
strategy:
matrix:
test: [test, system]
include:
- test: test
command: test
- test: system
command: test:system
services:
postgres:
image: postgres:15
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
volumes:
- /dev/shm/pgdata:/var/lib/postgresql/data
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- 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
- name: Install libvips
run: sudo apt-get install -y libvips
- uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- uses: actions/cache@v4
with:
path: "**/node_modules"
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn install --frozen-lockfile
- name: Cache Playwright Chromium browser
if: matrix.test == 'system'
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-browsers-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install Playwright Chromium browser (with deps)
if: matrix.test == 'system' && steps.playwright-cache.outputs.cache-hit != 'true'
run: yarn run playwright install --with-deps chromium
- name: Install Playwright Chromium browser deps
if: matrix.test == 'system' && steps.playwright-cache.outputs.cache-hit == 'true'
run: yarn run playwright install-deps chromium
- 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:15
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
volumes:
- /dev/shm/pgdata:/var/lib/postgresql/data
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- name: Run bin/setup script
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: ./bin/setup
- name: Run bin/setup script again
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: postgres
PGPORT: ${{ job.services.postgres.ports[5432] }}
run: ./bin/setup
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# if: ${{ failure() }}
StandardJS:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- uses: actions/cache@v4
with:
path: "**/node_modules"
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn install --frozen-lockfile
- name: StandardJS
run: yarn run standard
StandardRB:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: StandardRB
run: bundle exec standardrb
ERBLint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: ERB Lint
run: bundle exec erblint --lint-all