Skip to content
Merged
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
11 changes: 9 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Release
# It owns only what an `on: workflow_call` workflow cannot: the tag trigger, the
# contents:write token grant, and spellkit's per-gem inputs/secrets. Every build
# leg (source + arm64-darwin + x86_64-linux + aarch64-linux), SHA pin, and gotcha
# lives once in the shared workflow (pinned @0.10.0). See red-candle's
# lives once in the shared workflow (pinned @0.11.0). See red-candle's
# release.yml for the proven template.
#
# Release procedure (the tag drives it; a CI-created tag would not re-trigger):
Expand All @@ -29,6 +29,10 @@ on:
- "v[0-9]+.[0-9]+.[0-9]+.*"
workflow_dispatch:
inputs:
version:
type: string
default: ""
description: "Version to cut + release, e.g. 1.0.0 (blank = build-only dry-run)"
publish:
type: boolean
default: false
Expand All @@ -47,13 +51,16 @@ jobs:
# Normal PRs must not run the expensive cross matrix — only a PR explicitly
# labeled `dry-run-release` does. Tag pushes and manual dispatch always run.
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'dry-run-release') }}
uses: scientist-labs/rust-gem-release/.github/workflows/release.yml@0.10.0
uses: scientist-labs/rust-gem-release/.github/workflows/release.yml@0.11.0
with:
# Generic (non-aliasing) adopter: gem-name == ext-name == gemspec basename ==
# "spellkit", so ext-name / gemspec / platform-gem-env all resolve to their
# defaults (spellkit, spellkit.gemspec, RUST_GEM_PLATFORM) and are omitted.
gem-name: spellkit
version-command: ruby -r./lib/spellkit/version -e 'print SpellKit::VERSION'
version: ${{ inputs.version }}
bump-command: |
sed -i 's/^\( *VERSION *= *\).*/\1"'"$VERSION"'"/' lib/spellkit/version.rb
# On a tag push -> publish; on manual dispatch -> the input (default false = dry-run).
# A labeled-PR dry-run is never a publish (the pull_request event has no `inputs`).
publish: ${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.publish) }}
Expand Down
Loading