diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 0000000..5b7ae90 --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,61 @@ +name: Ruby + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + linters: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2.3.4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - name: Run linters + run: bundle exec rubocop --parallel + - name: Ruby security checks + run: | + bundle exec bundler-audit --update + bundle exec brakeman -q -w2 + + test: + runs-on: ubuntu-latest + + env: + RAILS_ENV: test + NODE_ENV: test + DATABASE_URL: postgres://postgres:postgres@localhost:5432 + + services: + postgres: + image: postgres:12 + env: + POSTGRES_PASSWORD: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v2.3.4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + + - name: Create database + run: | + bundle exec rails db:create + bundle exec rails db:schema:load + + - name: Run tests + run: bundle exec rake