Skip to content

Commit 26f26c4

Browse files
committed
Switch gem release to OIDC API key role with JRuby support
1 parent 5d1ff43 commit 26f26c4

2 files changed

Lines changed: 67 additions & 46 deletions

File tree

.github/workflows/gem_push.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
name: Push Gem
3+
4+
"on":
5+
push:
6+
tags:
7+
- v*
8+
9+
jobs:
10+
push:
11+
runs-on: ubuntu-latest
12+
13+
permissions:
14+
contents: write
15+
id-token: write
16+
17+
strategy:
18+
matrix:
19+
include:
20+
- ruby: ruby
21+
platform: ""
22+
- ruby: jruby
23+
platform: java
24+
25+
env:
26+
BUNDLE_WITHOUT: sig
27+
28+
steps:
29+
- uses: rubygems/configure-rubygems-credentials@main
30+
with:
31+
role-to-assume: rg_oidc_akr_j4j75yxftmnzz97q1cvd
32+
33+
- uses: actions/checkout@v6
34+
35+
- name: Set up Ruby
36+
uses: ruby/setup-ruby@v1
37+
with:
38+
bundler-cache: true
39+
ruby-version: ${{ matrix.ruby }}
40+
41+
- name: Build gem
42+
run: gem build http.gemspec
43+
env:
44+
HTTP_PLATFORM: ${{ matrix.platform }}
45+
46+
- name: Push gem
47+
run: gem push http-*.gem
48+
49+
- name: Wait for release to propagate
50+
run: |
51+
gem install rubygems-await
52+
gem_tuple="$(ruby -rbundler/setup -rbundler -e '
53+
spec = Bundler.definition.specs.find {|s| s.name == ARGV[0] }
54+
raise "No spec for #{ARGV[0]}" unless spec
55+
print [spec.name, spec.version, spec.platform].join(":")
56+
' "http")"
57+
gem await "${gem_tuple}"
58+
env:
59+
HTTP_PLATFORM: ${{ matrix.platform }}
60+
61+
- name: Create GitHub release
62+
if: matrix.ruby == 'ruby'
63+
run: |
64+
tag_name="$(git describe --tags --abbrev=0)"
65+
gh release create "${tag_name}" --verify-tag --generate-notes
66+
env:
67+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/push.yml

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)