name: Ruby Gem Publish on: push: branches: [ "main" ] jobs: test: runs-on: ubuntu-latest strategy: matrix: ruby-version: [ '3.0', '3.1', '3.2', '3.3' ] steps: - uses: actions/checkout@v2 - 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 rspec deploy: needs: test runs-on: ubuntu-latest permissions: packages: write contents: read steps: - uses: actions/checkout@v2 - name: Set up Ruby 3.3.4 uses: ruby/setup-ruby@v1 with: ruby-version: 3.3.4 bundler-cache: true - name: Publish to RubyGems run: | mkdir -p $HOME/.gem touch $HOME/.gem/credentials chmod 0600 $HOME/.gem/credentials printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials gem build *.gemspec gem push *.gem env: GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"