jwt/ruby-jwt

View on GitHub
.github/workflows/push_gem.yml

Summary

Maintainability
Test Coverage
---
  'on':
    push:
      tags:
      - v*
  name: Push Gem
  jobs:
    push:
      runs-on: ubuntu-latest
      permissions:
        contents: write
        id-token: write
      steps:
      - uses: rubygems/configure-rubygems-credentials@main
        with:
          role-to-assume: ${{ secrets.RUBYGEMS_PUSH_ROLE }}
      - uses: actions/checkout@v4
      - name: Set remote URL
        run: |
          # Attribute commits to the last committer on HEAD
          git config --global user.email "$(git log -1 --pretty=format:'%ae')"
          git config --global user.name "$(git log -1 --pretty=format:'%an')"
          git remote set-url origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY"
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
          ruby-version: ruby
      - name: Release
        run: bundle exec rake release
      - name: Wait for release to propagate
        run: |
          gem install rubygems-await
          gem_tuple="$(ruby -rbundler/setup -rbundler -e '
              spec = Bundler.definition.specs.find {|s| s.name == ARGV[0] }
              raise "No spec for #{ARGV[0]}" unless spec
              print [spec.name, spec.version, spec.platform].join(":")
            ' "jwt")"
          gem await "${gem_tuple}"