.github/workflows/release.yml
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 }}