name: Continuous Integration on: push: branches: - master - actions-* tags: - v* pull_request: env: BUNDLE_CLEAN: "true" BUNDLE_PATH: vendor/bundle BUNDLE_JOBS: 3 BUNDLE_RETRY: 3 jobs: standard: name: StandardRB runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - name: set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.0 - name: install dependencies run: bundle install - name: standardrb if: matrix.job == 'standardrb' run: bundle exec rake standard specs: name: ${{ matrix.job }} ruby-${{ matrix.ruby }} ${{ matrix.activemodel && format('activemodel-{0}', matrix.activemodel) }} cassandra-${{ matrix.cassandra_version }} runs-on: ubuntu-latest services: cassandra: image: cassandra:${{ matrix.cassandra_version }} ports: - 9042:9042 strategy: fail-fast: false matrix: ruby: ["3.1"] activemodel: ["original"] job: [rspec] cassandra_version: ["latest"] include: - ruby: "2.6" activemodel: "5" job: rspec cassandra_version: "3" - ruby: "2.4" activemodel: "4" job: rspec cassandra_version: "2" - ruby: "2.7" activemodel: "6" - ruby: "3.0" activemodel: "7" steps: - name: checkout uses: actions/checkout@v2 - name: set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} - name: inject activemodel ${{ matrix.activemodel }} if: matrix.activemodel != 'original' && matrix.activemodel != null run: | # inject a specific version of activemodel into the Gemfile bundle update bundle exec appraisal generate bundle config set gemfile "gemfiles/activemodel_${{ matrix.activemodel }}.gemfile" - name: install dependencies run: bundle install - name: specs if: matrix.job == 'rspec' run: bundle exec rake spec