name: Release
on:
push:
tags: ['v*']
jobs:
publish:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
- name: Verify version matches tag
run: |
TAG_VERSION="${GITHUB_REF#refs/tags/v}"
GEM_VERSION=$(ruby -e "require './lib/ast_transform/version'; puts ASTTransform::VERSION")
if [ "$TAG_VERSION" != "$GEM_VERSION" ]; then
echo "::error::Tag ($TAG_VERSION) does not match gem version ($GEM_VERSION)"
exit 1
fi
- uses: rubygems/configure-rubygems-credentials@main
- name: Build and publish gem
run: |
gem build ast_transform.gemspec
gem push ast_transform-*.gem