Skip to content

Commit bb81f14

Browse files
authored
Merge pull request #2535 from Shopify/trusted-publisher-release
Migrate release workflow to use trusted publisher
2 parents 849f91e + f91479a commit bb81f14

1 file changed

Lines changed: 41 additions & 16 deletions

File tree

.github/workflows/release.yml

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,52 @@
1-
name: Release
1+
name: Release gem on RubyGems.org and create GitHub release
22

33
on:
44
push:
55
tags:
6-
- v*
6+
- 'v[0-9]+.[0-9]+.[0-9]+'
77

88
jobs:
9-
publish:
9+
release_gem:
10+
name: Release gem on RubyGems.org
11+
if: github.repository == 'Shopify/tapioca'
1012
runs-on: ubuntu-latest
1113

14+
permissions:
15+
contents: write
16+
id-token: write
17+
18+
environment: release
19+
1220
steps:
13-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
14-
name: Checkout
21+
- name: Checkout repository
22+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23+
with:
24+
persist-credentials: false
1525

16-
- name: Create release
17-
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
26+
- name: Set up Ruby
27+
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
1828
with:
19-
github-token: "${{ secrets.GITHUB_TOKEN }}"
20-
script: |
21-
await github.rest.repos.createRelease({
22-
owner: context.repo.owner,
23-
repo: context.repo.repo,
24-
tag_name: "${{ github.ref }}",
25-
name: "${{ github.ref_name }}",
26-
generate_release_notes: true
27-
})
29+
bundler-cache: true
30+
31+
- name: Release gem on RubyGems.org
32+
uses: rubygems/release-gem@e9a6361a0b14562539327c2a02373edc56dd3169 # v1.1.4
33+
34+
release_github:
35+
name: Create GitHub release
36+
if: github.repository == 'Shopify/tapioca'
37+
needs: release_gem
38+
runs-on: ubuntu-latest
39+
40+
permissions:
41+
contents: write
42+
43+
steps:
44+
- name: Checkout repository
45+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
46+
47+
- name: Create GitHub release
48+
run: |
49+
tag_name="$(git describe --tags --abbrev=0)"
50+
gh release create "${tag_name}" --verify-tag --generate-notes
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)