Skip to content

Update to version 4 of upload-artifact (#1785) #1833

Update to version 4 of upload-artifact (#1785)

Update to version 4 of upload-artifact (#1785) #1833

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@v4
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