Skip to content

Commit d2cd9d5

Browse files
Add GitHub Actions workflow for Ruby gem publishing
This GitHub Actions workflow automates the building and publishing of Ruby gems to both GitHub Packages and RubyGems. Signed-off-by: Mohammed Hussein <mohammedisupply@gmail.com>
1 parent f0f2209 commit d2cd9d5

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

.github/workflows/gem-push.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Ruby Gem
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
jobs:
10+
build:
11+
name: Build + Publish
12+
runs-on: ubuntu-latest
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
- name: Set up Ruby 2.6
20+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
21+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
22+
# uses: ruby/setup-ruby@v1
23+
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
24+
with:
25+
ruby-version: 2.6.x
26+
27+
- name: Publish to GPR
28+
run: |
29+
mkdir -p $HOME/.gem
30+
touch $HOME/.gem/credentials
31+
chmod 0600 $HOME/.gem/credentials
32+
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
33+
gem build *.gemspec
34+
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
35+
env:
36+
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
37+
OWNER: ${{ github.repository_owner }}
38+
39+
- name: Publish to RubyGems
40+
run: |
41+
mkdir -p $HOME/.gem
42+
touch $HOME/.gem/credentials
43+
chmod 0600 $HOME/.gem/credentials
44+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
45+
gem build *.gemspec
46+
gem push *.gem
47+
env:
48+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"

0 commit comments

Comments
 (0)