benjaminoakes/maid

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
name: Release

on:
  push:
    branches:
      - master

permissions:
  contents: write
  pull-requests: write

jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Prepare release
        id: release
        uses: google-github-actions/release-please-action@v3
        with:
          release-type: ruby
          package-name: maid
          # Major bump is minor instead pre-1.0.0
          bump-minor-pre-major: true
          # Minor bump is patch instead pre-1.0.0
          bump-patch-for-minor-pre-major: true
          # Don't parse commits before this one as they don't follow the
          # conventional commit format AND don't have `release-please`
          # COMMIT_MESSAGE_OVERRIDE data.
          # (https://www.conventionalcommits.org/en/v1.0.0/#summary)
          bootstrap-sha: 0a6ff8abc6db00aca181d6bfed9751e332900ac9
          # This is the last release before starting to use release-please
          last-release-sha: 0a6ff8abc6db00aca181d6bfed9751e332900ac9
          version-file: lib/maid/version.rb
          # Don't use GITHUB_TOKEN because this doesn't allow workflows to
          # trigger workflows; it leave the `release-please`-generated PR with
          # pending checks as they're never started.
          token: ${{ secrets.BOT_GH_TOKEN }}
          # Uncomment for pre-releases, see
          # https://github.com/maid/maid/wiki/Release-Process
          # prerelease: true
          # release-as: v0.10.0-alpha.3
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          # ruby-version derived from .ruby-version file
          bundler-cache: true
      - name: Install dependencies
        run: bundle install
      - name: Run tests
        run: bundle exec rake
        env:
          ISOLATED: true
      - name: Publish gem
        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 }}
        if: ${{ steps.release.outputs.release_created }}