name: CI on: [push, pull_request] jobs: test: name: Test on ruby ${{ matrix.ruby }} and rails ${{ matrix.rails }} runs-on: ubuntu-latest services: redis: image: redis ports: ['6379:6379'] options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 postgres: image: postgres:13 ports: - 5432:5432 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 strategy: matrix: ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3'] rails: ['5.2', '6.0.0', '6.1.0', '7.0.0', '7.1.0'] exclude: - ruby: "2.6" rails: "7.1.0" - ruby: "2.6" rails: "7.0.0" - ruby: "2.7" rails: "7.1.0" - ruby: "3.0" rails: "5.2" - ruby: "3.1" rails: "5.2" - ruby: "3.1" rails: "6.0.0" - ruby: "3.2" rails: "5.2" - ruby: "3.2" rails: "6.0.0" - ruby: "3.2" rails: "6.1.0" - ruby: "3.3" rails: "5.2" - ruby: "3.3" rails: "6.0.0" - ruby: "3.3" rails: "6.1.0" env: SQLITE3_VERSION: 1.4.1 REDIS_URL: redis://localhost:6379/0 CI: true RAILS_VERSION: ${{ matrix.rails }} MYSQL_USER: root MYSQL_PASSWORD: root POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres steps: - name: Set up MySQL run: sudo /etc/init.d/mysql start - name: Setup memcached uses: KeisukeYamashita/memcached-actions@v1 - name: Start MongoDB uses: supercharge/mongodb-github-action@v1.10.0 with: mongodb-version: 4.0 - name: Check out repository code uses: actions/checkout@v4 - name: Do some action caching uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ matrix.rails }}-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ matrix.rails }}- - name: Install libpq-dev run: sudo apt-get -yqq install libpq-dev - name: Set up Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true # 'bundle install' and cache gems - name: Run Rake with Rails ${{ matrix.rails }} run: bundle exec rake