name: Build on: pull_request: types: - opened - synchronize push: branches: - master tags: - 'v*.*.*' jobs: build_and_test: name: Build and Test runs-on: ubuntu-latest strategy: matrix: version: - '2.6' - '3.3' steps: - name: Checkout uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.version }} bundler-cache: true - name: Build run: gem build *.gemspec - name: Run Tests run: bundle exec rspec publish: name: Publish runs-on: ubuntu-latest needs: build_and_test if: github.ref_type == 'tag' permissions: contents: write id-token: write steps: - name: Checkout uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: '3.3' bundler-cache: true - name: Publish to RubyGems uses: rubygems/release-gem@v1