5635bf05bc
* Upgrade Rails workflow to true CI The existing Rails CI example only runs linters, which is not continuous integration. This change brings the Rails example workflow up to par with the other web framework CI flows, like Django. This example is optimized for Rails 7, which does not include NodeJS, webpack, or yarn by default. No Rails application code changes are required for this flow to run the tests, and both minitest and rspec are supported via the `test` rake task. * add Rails icon * use env vars, hopefully * use the full hash for ruby/setup-ruby * remove PORT since services cannot use it * stop repeating identical step envs * resolve env var declaration error * update setup-ruby to the SHA of v1.92 * use setup-ruby SHA for lint job too Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>
59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
# 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: "Ruby on Rails CI"
|
|
on:
|
|
push:
|
|
branches: [ $default-branch ]
|
|
pull_request:
|
|
branches: [ $default-branch ]
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
postgres:
|
|
image: postgres:11-alpine
|
|
ports:
|
|
- "5432:5432"
|
|
env:
|
|
POSTGRES_DB: rails_test
|
|
POSTGRES_USER: rails
|
|
POSTGRES_PASSWORD: password
|
|
env:
|
|
RAILS_ENV: test
|
|
DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test"
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
# Add or replace dependency steps here
|
|
- name: Install Ruby and gems
|
|
uses: ruby/setup-ruby@8f312efe1262fb463d906e9bf040319394c18d3e # v1.92
|
|
with:
|
|
bundler-cache: true
|
|
# Add or replace database setup steps here
|
|
- name: Set up database schema
|
|
run: bin/rails db:schema:load
|
|
# Add or replace test runners here
|
|
- name: Run tests
|
|
run: bin/rake
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Install Ruby and gems
|
|
uses: ruby/setup-ruby@8f312efe1262fb463d906e9bf040319394c18d3e # v1.92
|
|
with:
|
|
bundler-cache: true
|
|
# Add or replace any other lints here
|
|
- name: Security audit dependencies
|
|
run: bin/bundler-audit --update
|
|
- name: Security audit application code
|
|
run: bin/brakeman -q -w2
|
|
- name: Lint Ruby files
|
|
run: bin/rubocop --parallel
|