diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11f70d9..067dc9c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,9 @@ name: Release -# Builds every gem in the repo and attaches them to a GitHub release. -# Publishing to RubyGems stays a deliberate manual step: -# gem push pkg/-.gem +# Builds every gem in the repo, attaches them to a GitHub release, and +# publishes to RubyGems via trusted publishing (OIDC — no stored API key). +# Requires a trusted publisher configured on rubygems.org for EACH gem +# name in this repo, pointing at this repository and this workflow file. on: push: tags: [ "v*" ] @@ -30,3 +31,29 @@ jobs: with: files: pkg/*.gem generate_release_notes: true + + publish: + # Tag pushes release; workflow_dispatch covers environments where tags + # can't be pushed directly (gem push is idempotent-failing, so an + # accidental re-run can't double-publish a version). + if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write # OIDC exchange with rubygems.org + contents: read + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3" + bundler-cache: true + # The action publishes no v1 tag; @main is the ref its docs pin. + - uses: rubygems/configure-rubygems-credentials@main + - name: Publish the core, then the adapter that depends on it + run: | + gem build activeagents-telemetry.gemspec + gem push activeagents-telemetry-*.gem + cd adapters/ruby_llm + gem build activeagents-telemetry-ruby_llm.gemspec + gem push activeagents-telemetry-ruby_llm-*.gem diff --git a/CHANGELOG.md b/CHANGELOG.md index fc4f8a8..383f251 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +## [0.1.0] - 2026-08-10 + +First public release of both gems: `activeagents-telemetry` (the shared +core) and `activeagents-telemetry-ruby_llm` (the RubyLLM adapter). + ### Added - Feature parity with the ActiveAgent framework's built-in telemetry, so the