#2410: Round out the Fund model with UI #2349
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
dockercheck: | |
name: Verify docker build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Bring up containers | |
run: | | |
docker-compose build | |
docker-compose run --rm web rails db:create db:migrate db:seed | |
docker-compose up -d | |
sleep 30 | |
docker-compose logs -t | |
docker ps -a | (! grep Exited ) # Return a non-zero exit code if any of the containers are stopped | |
build: | |
name: Run tests | |
runs-on: ubuntu-latest | |
env: | |
POSTGRES_USER: daria | |
POSTGRES_PASSWORD: "" | |
CI: true | |
services: | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: daria | |
POSTGRES_DB: dcaf_case_management_test | |
POSTGRES_HOST_AUTH_METHOD: trust | |
ports: | |
- 5432:5432 | |
# Add a health check | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Ruby setup | |
- name: Setup ruby | |
uses: ruby/setup-ruby@v1 # automagically reads from .ruby-version | |
with: | |
bundler-cache: true | |
# npm/yarn setup | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.16.0 | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} | |
- name: yarn packages | |
run: yarn install | |
# System setup | |
- name: Install | |
run: sudo apt-get -yqq install libpq-dev google-chrome-stable | |
# App setup | |
- name: Asset compilation | |
run: NODE_ENV=test bin/rails assets:precompile | |
- name: Database setup setup | |
run: RAILS_ENV=test bin/rails db:create db:migrate | |
# Run tests | |
- name: Run test suite | |
run: bin/rails test:all | |
# Save artifacts | |
- name: Store coverage artifact | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: code-coverage-report | |
path: coverage | |
- name: Store test artifacts | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: capybara-screenshots | |
path: tmp/capybara/ | |
scan: | |
name: Run static scanners | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Ruby setup | |
- name: Setup ruby | |
uses: ruby/setup-ruby@v1 # automagically reads from .ruby-version | |
with: | |
bundler-cache: true | |
- name: Install scanners | |
run: | | |
gem install --no-document brakeman ruby_audit bundler-audit | |
# Run scanners | |
- name: Brakeman | |
run: brakeman --exit-on-warn . | |
- name: ruby-audit | |
run: bundle exec ruby-audit check | |
- name: bundle-audit | |
run: bundle-audit update; bundle-audit check | |
- name: Zeitwerk | |
run: bin/rails zeitwerk:check | |
- name: yarn npm audit | |
run: yarn npm audit |