delonnewman/dragnet

View on GitHub
.github/workflows/rubyonrails.yml

Summary

Maintainability
Test Coverage
# This workflow uses actions that are not certified by GitHub.  They are
# provided by a third-party and are governed by separate terms of service,
# privacy policy, and support documentation.
#
# This workflow will install a prebuilt Ruby version, install dependencies, and
# run tests and linters.
name: "Backend CI"
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  test:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:15-alpine
        ports:
          - "5432:5432"
        env:
          POSTGRES_DB: dragnet_test
          POSTGRES_USER: dragnet
          POSTGRES_PASSWORD: testing123
    env:
      RAILS_ENV: test
      DATABASE_URL: "postgres://dragnet:testing123@localhost:5432/dragnet_test"
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      # Add or replace dependency steps here
      - name: Install Ruby and gems
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
      # Add or replace database setup steps here
      - name: Set up database schema
        run: bundle exec rails db:schema:load db:seed
      # Add or replace test runners here
      - name: Run tests
        run: bundle exec rake

  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Install Ruby and gems
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
      # Add or replace any other lints here
      - name: Security audit dependencies
        run: bundle exec rake bundle:audit:update bundle:audit:check
      - name: Security audit application code
        run: bundle exec brakeman -q -w2
      # - name: Lint Ruby files
      #   run: bundle exec rubocop --parallel