Skip to content

Merge pull request #242 from joyofrails/repro/addressable #881

Merge pull request #242 from joyofrails/repro/addressable

Merge pull request #242 from joyofrails/repro/addressable #881

Workflow file for this run

name: Verify
on: [push]
env:
HONEYBADGER_API_KEY: ${{ secrets.HONEYBADGER_API_KEY }}
jobs:
lint:
name: Linters
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Run Ruby linter
run: |
bin/standardrb --parallel
- name: Run ERB linter
run: |
bin/erblint --lint-all
- name: Run Bundler audit
run: |
bin/bundler-audit --update
- name: Run security checks
run: |
bin/brakeman -q -w2
test:
name: Tests
runs-on: ubuntu-latest
env:
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_TEST_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Setup test database
env:
RAILS_ENV: test
run: |
bin/rails db:setup
- name: Run tests
env:
RAILS_ENV: test
run: bin/rspec
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
setup:
name: Setup
runs-on: ubuntu-latest
env:
RAILS_ENV: development
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Run local setup script
env:
RAILS_ENV: test
run: bin/setup
- name: Run local setup script idempotently
env:
RAILS_ENV: test
run: bin/setup
npm-test:
name: Tests - JavaScript
runs-on: ubuntu-latest
env:
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_TEST_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Run JavaScript unit tests
run: |
npm run test -- --watch=false
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
assets:
name: Assets
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Make sure assets compile
run: |
RAILS_MASTER_KEY=${{ secrets.RAILS_MASTER_PRODUCTION_KEY }} \
RAILS_ENV=production \
bin/rails assets:precompile
- uses: actions/upload-artifact@v4
with:
name: assets
path: public
retention-days: 1
boot:
name: Boot
runs-on: ubuntu-latest
env:
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_PRODUCTION_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm
- name: Node version
run: |
node --version
- name: Install packages
run: |
npm ci
- name: Start Rails server in the background
run: |
RAILS_FORCE_SSL=false bundle exec puma -b tcp://127.0.0.1:3001 -e production &
sleep 10
- name: Make sure the server is running
run: |
bin/up http://127.0.0.1:3001/up