# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby name: Ruby on: push: branches: [ main ] tags: [ 'v[0-9]*' ] pull_request: branches: [ main ] jobs: test: runs-on: ${{ matrix.os }} strategy: matrix: ruby-version: ['2.6', '2.7', '3.0', '3.1'] os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v2 - name: Shellcheck if: matrix.os == 'ubuntu-latest' run: shellcheck test/run test/checks - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests run: bundle exec rake - name: Run checks run: test/run publish: needs: test runs-on: ubuntu-latest if: success() && github.event_name == 'push' steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.1' bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Publish to RubyGems run: | mkdir -p $HOME/.gem printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials chmod 0600 $HOME/.gem/credentials bundle exec rake publish env: GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_API_KEY }}"