Skip to content

Commit

Permalink
Add publish workflow (#5)
Browse files Browse the repository at this point in the history
This workflow will build and publish a new version of the gem to both
RubyGems.org and GitHub packages when a new GitHub Release is created.

Additionally, the RubyGems-pushed gem uses Trusted Publishing for added
security.

See: https://guides.rubygems.org/trusted-publishing/

This workflow is derived from my personal work and has served me well so
far.

An example:


https://github.com/jgarber623/micromicro/blob/main/.github/workflows/publish.yml
  • Loading branch information
jgarber623-cargosense authored Dec 22, 2023
2 parents b8ddb95 + bb5ff8c commit 2edb935
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Publish

on:
release:
types: [published]

jobs:
ci:
name: CI
uses: ./.github/workflows/ci.yml
publish-to-rubygems:
name: Publish to RubyGems
permissions:
contents: write
id-token: write
needs: ci
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "3.0"
- uses: rubygems/release-gem@v1
publish-to-github-packages:
name: Publish to GitHub Packages
permissions:
contents: read
packages: write
needs: ci
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "3.0"
- run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:github: Bearer ${{ secrets.GITHUB_TOKEN }}\n" > $HOME/.gem/credentials
- run: bundle exec rake release
env:
BUNDLE_GEM__PUSH_KEY: github
RUBYGEMS_HOST: "https://rubygems.pkg.github.com/${{ github.repository_owner }}"

0 comments on commit 2edb935

Please sign in to comment.