Skip to content

Commit 8a9548e

Browse files
committed
release: use Trusted Publishing
1 parent 6a5acde commit 8a9548e

2 files changed

Lines changed: 53 additions & 18 deletions

File tree

.github/workflows/ci.yml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,6 @@ jobs:
6161
name: gem-${{ matrix.os }}-${{ matrix.ruby }}
6262
path: pkg/
6363

64-
- name: Release
65-
if: >-
66-
startsWith(github.ref, 'refs/tags/') &&
67-
matrix.os == 'ubuntu-latest' &&
68-
(matrix.ruby == needs.ruby-version.outputs.latest || matrix.ruby == 'jruby')
69-
run: |
70-
ruby \
71-
-e 'print("## strscan "); \
72-
puts(ARGF.read.split(/^## /)[1].gsub(/ {.+?}/, ""))' \
73-
NEWS.md > release-note.md
74-
gh release create \
75-
${GITHUB_REF_NAME} \
76-
--discussion-category Announcements \
77-
--notes-file release-note.md || :
78-
gh release upload ${GITHUB_REF_NAME} pkg/*.gem
79-
env:
80-
GH_TOKEN: ${{ github.token }}
81-
8264
- run: bundle exec rake test
8365

8466
- run: gem install --verbose --backtrace pkg/*.gem

.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+
on:
3+
push:
4+
tags:
5+
- "*"
6+
jobs:
7+
github:
8+
name: GitHub
9+
runs-on: ubuntu-latest
10+
timeout-minutes: 10
11+
steps:
12+
- uses: actions/checkout@v4
13+
- name: Release
14+
run: |
15+
ruby \
16+
-e 'print("## strscan "); \
17+
puts(ARGF.read.split(/^## /)[1].gsub(/ {.+?}/, ""))' \
18+
NEWS.md > release-note.md
19+
title="$(head -n 1 release-note.md | sed -e 's/^## //')"
20+
tail -n +2 release-note.md > release-note-without-version.md
21+
gh release create \
22+
${GITHUB_REF_NAME} \
23+
--discussion-category Announcements \
24+
--notes-file release-note-without-version.md \
25+
--title "${title}"
26+
env:
27+
GH_TOKEN: ${{ github.token }}
28+
29+
rubygems:
30+
name: RubyGems
31+
runs-on: ubuntu-latest
32+
timeout-minutes: 10
33+
permissions:
34+
id-token: write
35+
environment: release
36+
strategy:
37+
matrix:
38+
ruby:
39+
- ruby
40+
- jruby
41+
steps:
42+
- uses: actions/checkout@v4
43+
- uses: ruby/setup-ruby@v1
44+
with:
45+
ruby-version: ${{ matrix.ruby }}
46+
bundler-cache: true
47+
- name: Build
48+
run: |
49+
bundle exec rake build
50+
- uses: rubygems/configure-rubygems-credentials@v1.0.0
51+
- name: Push gems
52+
run: |
53+
bundle exec rake release:rubygem_push

0 commit comments

Comments
 (0)