name: Ruby CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: ruby-version: ['3.3', '3.2', '3.1', '3.0', '2.7', '2.6'] steps: - uses: actions/checkout@v4 - name: Run PostgreSQL 12 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5432:5432 postgres:12.20-alpine \ postgres -c shared_preload_libraries=pg_stat_statements - name: Run PostgreSQL 13 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5433:5432 postgres:13.16-alpine \ postgres -c shared_preload_libraries=pg_stat_statements - name: Run PostgreSQL 14 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5434:5432 postgres:14.13-alpine \ postgres -c shared_preload_libraries=pg_stat_statements - name: Run PostgreSQL 15 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5435:5432 postgres:15.8-alpine \ postgres -c shared_preload_libraries=pg_stat_statements - name: Run PostgreSQL 16 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5436:5432 postgres:16.4-alpine \ postgres -c shared_preload_libraries=pg_stat_statements - name: Run PostgreSQL 17 run: | docker run --env POSTGRES_USER=postgres \ --env POSTGRES_DB=ruby-pg-extras-test \ --env POSTGRES_PASSWORD=secret \ -d -p 5437:5432 postgres:17.0-alpine \ postgres -c shared_preload_libraries=pg_stat_statements sleep 5 - name: Set up Ruby ${{ matrix.ruby-version }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} - name: Setup dependencies run: | gem install bundler -v 2.4.22 sudo apt-get update --allow-releaseinfo-change sudo apt install postgresql-client sudo apt install libpq-dev bundle config set --local path 'vendor/bundle' bundle install sleep 5 - name: Run tests for PG 12 env: PG_VERSION: 12 run: | bundle exec rspec spec/ - name: Run tests for PG 13 env: PG_VERSION: 13 run: | bundle exec rspec spec/ - name: Run tests for PG 14 env: PG_VERSION: 14 run: | bundle exec rspec spec/ - name: Run tests for PG 15 env: PG_VERSION: 15 run: | bundle exec rspec spec/ - name: Run tests for PG 16 env: PG_VERSION: 16 run: | bundle exec rspec spec/ - name: Run tests for PG 17 env: PG_VERSION: 17 run: | bundle exec rspec spec/