Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 1 addition & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,13 @@ name: Release

on:
workflow_dispatch:
inputs:
dry-run:
description: Validate and build without publishing or pushing.
type: boolean
default: true

permissions:
contents: write
id-token: write

jobs:
release:
uses: dblock/ruby-gem-release/.github/workflows/release.yml@v0.2.0
uses: dblock/ruby-gem-release/.github/workflows/release.yml@v0.3.0
with:
ruby-version: '3.3'
dry-run: ${{ inputs.dry-run }}
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
### 0.5.1 (Next)

* [#28](https://github.com/dblock/ruby-link-checker/pull/28): Updated ruby-gem-release to 0.3.0 and removed the unsupported dry-run release input and instructions - [@dblock](https://github.com/dblock), [@Copilot](https://github.com/Copilot).
* Your contribution here.

### 0.5.0 (2026/11/07)
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ It's likely that your change will not be merged and that the nitpicky maintainer

## Releases

See [RELEASING.md](RELEASING.md) for the manual release workflow, dry runs, and one-time Trusted Publishing setup.
See [RELEASING.md](RELEASING.md) for the manual release workflow and one-time Trusted Publishing setup.

## Thank You

Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ group :development, :test do
gem 'rubocop', '~> 1.0'
gem 'rubocop-rake'
gem 'rubocop-rspec'
gem 'ruby-gem-release', '~> 0.2.0', require: false
gem 'ruby-gem-release', '~> 0.3.0', require: false
gem 'vcr'
gem 'webmock'
end
Expand Down
14 changes: 6 additions & 8 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

There are no hard rules about when to release ruby-link-checker. Release bug fixes frequently, features not so frequently and breaking API changes rarely.

Releases use [ruby-gem-release](https://github.com/dblock/ruby-gem-release/tree/v0.2.0) and the manual [Release workflow](.github/workflows/release.yml). Merges do not publish, and dispatches default to dry-run mode.
Releases use [ruby-gem-release](https://github.com/dblock/ruby-gem-release/tree/v0.3.0) and the manual [Release workflow](.github/workflows/release.yml). Merges do not publish. Every workflow dispatch performs a real release.

## One-Time Setup

Expand All @@ -16,18 +16,16 @@ The workflow requests `contents: write` and `id-token: write`. Branch rules must

Prepare the intended version in `lib/ruby-link-checker/version.rb` and its matching `### VERSION (Next)` section in `CHANGELOG.md` through a PR. Keep exactly one `* Your contribution here.` placeholder in that section. The workflow releases the current version, dates the changelog, and removes the placeholder; it does not select a new release version.

After merging, run a dry run from `main`:
Run tests and RuboCop locally and review the release changes before merging:

```sh
gh workflow run release.yml --ref main -f dry-run=true
bundle exec rake
```

Review the run's validation results and artifacts before authorizing publication. Dry runs exercise local commits, tags, and gem builds in the runner, without uploading the gem, pushing Git history, or creating a GitHub Release.

After explicit release approval and successful Trusted Publishing setup:
After merging, explicit release approval, and successful Trusted Publishing setup, dispatch from `main`:

```sh
gh workflow run release.yml --ref main -f dry-run=false
gh workflow run release.yml --ref main
```

The workflow runs `bundle exec rake`, publishes the verified gem to RubyGems, pushes the release commit and tag atomically, and creates a GitHub Release with the gem attached. It then increments the patch version and pushes a new development commit with a fresh changelog section. Actions-token pushes do not trigger ordinary push workflows, so the release workflow runs tests and RuboCop before publication.
Expand All @@ -36,4 +34,4 @@ The workflow runs `bundle exec rake`, publishes the verified gem to RubyGems, pu

Verify the published RubyGems version, matching tag and GitHub Release, attached gem, and next development version on `main`.

Never automatically rerun a failed or timed-out publication: RubyGems may have accepted the upload. Check registry and GitHub state first. Do not republish an existing version or move its tag. Available `release.gem`, `release.json`, and `release.bundle` recovery artifacts are retained for 30 days; follow the [upstream recovery instructions](https://github.com/dblock/ruby-gem-release/blob/v0.2.0/RELEASING.md#verify-and-recover) to complete only the missing steps.
Never automatically rerun a failed or timed-out publication: RubyGems may have accepted the upload. Check registry and GitHub state first. Do not republish an existing version or move its tag. Available `release.gem`, `release.json`, and `release.bundle` recovery artifacts are retained for 30 days; follow the [upstream recovery instructions](https://github.com/dblock/ruby-gem-release/blob/v0.3.0/RELEASING.md#verify-and-recover) to complete only the missing steps.
Loading