Skip to content

Commit 02b5505

Browse files
yahondaclaude
andcommitted
Add release workflow to publish CRuby gem
Adds .github/workflows/release.yml triggered on v* tag pushes. Builds the gem on CRuby 4.0, then pushes it to RubyGems via OIDC trusted publishing (no API key secret). Trusted publishing must be enabled for this repo on RubyGems.org before the workflow can push gems. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 464c728 commit 02b5505

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build-cruby:
10+
name: Build gem (CRuby)
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v6
14+
- name: Set up Ruby
15+
uses: ruby/setup-ruby@v1
16+
with:
17+
ruby-version: '4.0'
18+
rubygems: latest
19+
- name: Build gem
20+
run: gem build ruby-plsql.gemspec
21+
- name: Upload gem artifact
22+
uses: actions/upload-artifact@v4
23+
with:
24+
name: gem-cruby
25+
path: "*.gem"
26+
27+
release:
28+
name: Push gem to RubyGems
29+
needs: [build-cruby]
30+
runs-on: ubuntu-latest
31+
environment: rubygems
32+
permissions:
33+
id-token: write
34+
contents: read
35+
actions: read
36+
steps:
37+
- name: Download CRuby gem
38+
uses: actions/download-artifact@v4
39+
with:
40+
name: gem-cruby
41+
- name: Set up Ruby
42+
uses: ruby/setup-ruby@v1
43+
with:
44+
ruby-version: '4.0'
45+
rubygems: latest
46+
- name: Configure RubyGems credentials
47+
uses: rubygems/configure-rubygems-credentials@main
48+
- name: Push gem
49+
run: |
50+
for gem in *.gem; do
51+
echo "Pushing $gem"
52+
gem push "$gem"
53+
done

0 commit comments

Comments
 (0)