π ci(fix): fixed ruby on rails postgresql error #195
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: "Ruby on Rails CI" | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
services: | |
postgres: | |
image: postgres:14-alpine # Use PostgreSQL 14 for both runners | |
ports: | |
- "5432:5432" | |
env: | |
POSTGRES_DB: rails_test | |
POSTGRES_USER: rails | |
POSTGRES_PASSWORD: password | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] # Specify both Ubuntu and macOS | |
env: | |
RAILS_ENV: test | |
DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Conditional step for installing PostgreSQL client libraries on Ubuntu | |
- name: Install PostgreSQL Client on Ubuntu | |
if: runner.os == 'Linux' # This will only run on the Ubuntu runner | |
run: sudo apt-get install -y postgresql-client-14 libpq-dev | |
# Conditional step for installing PostgreSQL on macOS | |
- name: Install PostgreSQL Client on macOS | |
if: runner.os == 'macOS' # This will only run on the macOS runner | |
run: | | |
brew install postgresql@14 | |
brew link --force postgresql@14 | |
- name: Install Ruby and gems | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Set up database schema | |
run: bin/rails db:schema:load | |
- name: Run tests | |
run: bundle exec rspec | |
lint: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Ruby and gems | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
# Add other lints and security checks as needed | |
- name: Security audit dependencies | |
run: bundle exec bundler-audit --update | |
- name: Security audit application code | |
run: bundle exec brakeman -q -w2 | |
- name: Lint Ruby files | |
run: bundle exec rubocop --parallel |