Skip to content

Release through RubyGems trusted publishing - #39

Merged
atesgoral merged 1 commit into
mainfrom
ci/trusted-publishing
Nov 10, 2026
Merged

atesgoral merged 1 commit into
mainfrom
ci/trusted-publishing

Conversation

@atesgoral

@atesgoral atesgoral commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Change

  • Add a release workflow triggered only when a GitHub release is published in Shopify/json-rpc-handler.
  • Use the release environment with job-level contents: write and id-token: write permissions. Read Ruby from .ruby-version and install the bundle before the release action.
  • Use release-gem v1.4.1 from Shopify/limiter's successful release workflow; the former action list is retired and the nested action is pinned.
  • Add RELEASING.md with the version and CHANGELOG PR flow (empty # Unreleased above the versioned entries) and matching release tag.

No version or CHANGELOG change is included.

Validation

  • bundle exec rake test: 70 tests, 226 assertions, no failures, errors, or skips; 100% branch coverage (36 of 36 branches).
  • Local YAML checks pass for the event, repository guard, job permissions, environment, Ruby/bundle setup, action pins, and gem name.
  • Each direct action SHA was checked against its version tag.
  • The downloaded actionlint binary passed its checksum check but was killed at startup. No passing actionlint result is claimed.
  • The release job was not run. No gem was built or published, and no environment or trusted publisher was created.

See the RubyGems trusted-publishing guide.

@atesgoral
atesgoral force-pushed the ci/trusted-publishing branch from 2d8dede to bfe891d Compare November 10, 2026 19:19
Comment thread RELEASING.md Outdated
Comment on lines +7 to +25
## One-time setup

Complete these steps before the first workflow run:

1. A repository admin creates a GitHub Actions environment named `release` in
this repository's Settings > Environments.
2. From the gem owner's RubyGems account, open `json_rpc_handler` and its
Trusted publishers page. Add a publisher with these fields:

| Field | Value |
| --- | --- |
| Trusted publisher type | GitHub Actions |
| Repository owner | `Shopify` |
| Repository name | `json-rpc-handler` |
| Workflow filename | `release.yml` |
| Environment | `release` |

The workflow uses the Ruby version in [`.ruby-version`](.ruby-version) and
installs the bundle before running the release task.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd remove this

@atesgoral
atesgoral force-pushed the ci/trusted-publishing branch from bfe891d to 629113f Compare November 10, 2026 19:39
Run the release job for published GitHub releases in this repository.
Use pinned actions and the release environment. Document the one-time
publisher setup and the version, changelog and tag flow.
@atesgoral
atesgoral force-pushed the ci/trusted-publishing branch from 74fd14f to 3aa6f85 Compare November 10, 2026 20:21
@atesgoral
atesgoral merged commit 9208cdf into main Nov 10, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants