Use GH Actions for CI #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Main | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
env: | |
CC_TEST_REPORTER_ID: "ac477089fe20ab4fc7e0d304cab75f72d73d58a7596d366935d18fcc7d51f8f9" | |
# `github.ref` points to the *merge commit* when running tests on a pull request, which will be a commit | |
# that doesn't exists in our code base. Since this workflow triggers from a PR, we use the HEAD SHA instead. | |
# | |
# NOTE: These are both used by Code Climate (cc-test-reporter). | |
GIT_COMMIT_SHA: ${{ github.event.pull_request.head.sha }} | |
GIT_BRANCH: ${{ github.head_ref }} | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
continue-on-error: ${{ matrix.allow-failure }} | |
strategy: | |
fail-fast: true | |
matrix: | |
ruby-version: ['3.0', '3.1', 'ruby'] | |
allow-failure: [false] | |
include: # | |
- ruby-version: ['jruby-9.3.10', 'jruby'] | |
allow-failure: false | |
- ruby-version: ['head', 'jruby-head', 'truffelruby-head'] | |
allow-failure: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
rubygems: latest | |
ruby-version: ${{ matrix.ruby-version }} | |
bundler-cache: true | |
- name: "Download cc-test-reporter from codeclimate.com" | |
run: | | |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter | |
chmod +x ./cc-test-reporter | |
- name: "Report to Code Climate that we will send a coverage report." | |
run: ./cc-test-reporter before-build | |
- name: Run tests | |
run: bundle exec rspec | |
env: | |
COVERAGE: 1 | |
- name: Archive code coverage results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: code-coverage-report | |
path: coverage | |
- name: Upload code coverage to Code Climate | |
run: | | |
./cc-test-reporter after-build \ | |
--input-type simplecov \ | |
--output ./coverage/codeclimate.json \ | |
./coverage/.resultset.json | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
rubygems: default | |
ruby-version: 'ruby' | |
bundler-cache: true | |
- name: Run RuboCop | |
run: bundle exec rubocop |