ryandotsmith/queue_classic

View on GitHub
.github/workflows/main.yaml

Summary

Maintainability
Test Coverage
name: Lint & Test
on: push
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  # test_rails:
  #   runs-on: ubuntu-latest
  #   services:
  #     postgres:
  #       image: postgres
  #       env:
  #         POSTGRES_PASSWORD: postgres
  #       options: >-
  #         --health-cmd pg_isready
  #         --health-interval 10s
  #         --health-timeout 5s
  #         --health-retries 5
  #       ports:
  #         - 5432:5432
  #   steps:
  #   - uses: actions/checkout@v3
  #   - name: Install postgresql-client
  #     run: |
  #       sudo apt-get update
  #       sudo apt-get install -y libpq-dev
  #   - uses: ruby/setup-ruby@v1
  #     with:
  #       ruby-version: "2.6"
  #       bundler-cache: true # runs 'bundle install' and caches installed gems automatically
  #   - name: Test clean install in Rails
  #     env:
  #       DATABASE_URL: postgres://postgres:postgres@localhost/qctest523
  #     run: |
  #       cd test/rails-tests/
  #       sh rails523.sh
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: '3.3'
        bundler-cache: true
    - name: Run rubocop
      run: bundle exec rubocop
      env:
        RUBY_YJIT_ENABLE: true
  test:
    runs-on: ubuntu-latest
    needs: lint
    strategy:
      fail-fast: false
      matrix:
        ruby_version: ['3.0', '3.1', '3.2', '3.3']
    services:
      postgres:
        image: postgres
        env:
          POSTGRES_PASSWORD: postgres
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        ports:
          - 5432:5432
    steps:
    - uses: actions/checkout@v4
    - name: Install postgresql-client
      run: |
        sudo apt-get update
        sudo apt-get install -y libpq-dev
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby_version }}
        bundler-cache: true
    - name: Run tests
      run: bundle exec rake
      env:
        RAILS_ENV: test
        RACK_ENV: test
        QC_DATABASE_URL: postgres://postgres:postgres@localhost/postgres
        DATABASE_URL: postgres://postgres:postgres@localhost/postgres
        QC_BENCHMARK: true
        QC_BENCHMARK_MAX_TIME_DEQUEUE: 60
        QC_BENCHMARK_MAX_TIME_ENQUEUE: 10
        RUBY_YJIT_ENABLE: true