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