name: Api

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:12
        ports:
          - 5432:5432
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
    steps:
      - uses: actions/checkout@v4
      - name: Install dependent libraries
        run: sudo apt-get install libpq-dev
      - uses: ruby/setup-ruby@v1
        with:
          working-directory: ./api
          bundler-cache: true
      - name: Setup Database
        run: |
          cp config/database.yml.github-actions config/database.yml
          bin/rails db:create
          bin/rails db:schema:load
        working-directory: ./api
        env:
          RAILS_ENV: test
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
      - name: Run RSpec
        run: bundle exec rspec
        working-directory: ./api
        env:
          RAILS_ENV: test
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres