Skip to content

Commit e336297

Browse files
authored
feat: add GitHub Actions workflow for automated gem releases (#81)
Triggers on version tags (v*) to: - Run full CI (reuses ruby.yml workflow) - Build gem - Push to RubyGems - Create GitHub release with release notes Release only proceeds if CI passes. Changes to ruby.yml automatically apply to release checks. Requires RUBYGEMS_API_KEY secret to be configured. Fixes #79
1 parent 32fffc5 commit e336297

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

.github/workflows/release.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
ci:
10+
uses: ./.github/workflows/ruby.yml
11+
12+
release:
13+
needs: ci
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
id-token: write
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up Ruby
23+
uses: ruby/setup-ruby@v1
24+
with:
25+
ruby-version: '4.0'
26+
bundler-cache: true
27+
28+
- name: Build gem
29+
run: gem build classifier.gemspec
30+
31+
- name: Push to RubyGems
32+
env:
33+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
34+
run: gem push classifier-*.gem
35+
36+
- name: Create GitHub Release
37+
uses: softprops/action-gh-release@v2
38+
with:
39+
files: classifier-*.gem
40+
generate_release_notes: true

.github/workflows/ruby.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212
branches: [ "master" ]
1313
pull_request:
1414
branches: [ "master" ]
15+
workflow_call:
1516

1617
permissions:
1718
contents: read

0 commit comments

Comments
 (0)