name: Ruby on: push: paths-ignore: - 'README.md' - 'CHANGELOG.md' pull_request: branches: [ master ] paths-ignore: - 'README.md' - 'CHANGELOG.md' jobs: test: runs-on: ubuntu-latest name: Test if: "contains(github.event.commits[0].message, '[ci skip]') == false" strategy: fail-fast: false matrix: db: - mysql ruby: - 2.6 - 2.7 - 3.0 - 3.1 gemfile: - 6.0.gemfile - 6.1.gemfile - 7.0.gemfile exclude: - gemfile: 7.0.gemfile ruby: 2.6 env: BUNDLE_GEMFILE: "gemfiles/${{ matrix.gemfile }}" services: mysql: image: mysql:5.6 env: MYSQL_ROOT_PASSWORD: root_password MYSQL_USER: developer MYSQL_PASSWORD: developer_password MYSQL_DATABASE: github_actions_test ports: - 3306:3306 # Set health checks to wait until mysql has started options: >- --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests run: bundle exec rake - name: Publish code coverage if: ${{ success() }} uses: paambaati/codeclimate-action@v2.7.5 env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}