name: Test on: push: branches: [main] pull_request: branches: [main] permissions: contents: read jobs: test: env: ENVIRONMENT: test PGDATABASE: rspec_profiling_test PGHOST: localhost PGPASSWORD: mypassword PGUSER: myuser SPEC_GEMFILE: spec/Gemfile strategy: matrix: ruby: ['2.7', '3.0', '3.1', '3.2', '3.3'] postgres: ['16-bookworm', '15-bookworm', '14-bookworm', '13-bookworm', '12-bookworm'] name: Ruby ${{ matrix.ruby }} - PostgreSQL ${{ matrix.postgres }} # https://docs.github.com/en/actions/learn-github-actions/expressions#example runs-on: ${{ matrix.ruby == '2.7' && 'ubuntu-20.04' || 'ubuntu-latest' }} services: postgres: image: postgres:${{ matrix.postgres }} env: POSTGRES_HOST: ${{ env.PGHOST }} POSTGRES_DB: ${{ env.PGDATABASE}} POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_USER: ${{ env.PGUSER }} options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 steps: - uses: actions/checkout@v4 - name: Set up Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Installing dependencies run: bundle install --gemfile ${{ env.SPEC_GEMFILE }} && cd spec/dummy && bundle install - name: Setup Database in Dummy Rails App run: cd spec/dummy && bundle exec rake db:create db:migrate --trace RAILS_ENV=${{ env.ENVIRONMENT }} - name: Initialize rspec_profiling in Dummy Rails App run: cd spec/dummy && bundle exec rake rspec_profiling:install RAILS_ENV=${{ env.ENVIRONMENT }} - name: Run specs run: bundle exec --gemfile ${{ env.SPEC_GEMFILE }} rspec