Skip to content

Commit

Permalink
Add gem push workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
AliOsm committed Aug 30, 2024
1 parent 7cd61d9 commit 5868254
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .github/scripts/check-release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh

# Checking if current tag matches the package version.
current_tag=$(echo $GITHUB_REF | cut -d '/' -f 3 | sed -r 's/^v//')
file_tag=$(grep 'VERSION = ' lib/phlex/icons/version.rb | cut -d '=' -f 2- | tr -d ' ' | tr -d \')
if [ "$current_tag" != "$file_tag" ]; then
echo "Error: the current tag does not match the version in package file(s)."
echo "$current_tag vs $file_tag"
exit 1
fi

echo 'OK'
exit 0
33 changes: 33 additions & 0 deletions .github/workflows/gem-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Release Gem to RubyGems.org

on:
release:
types: [published]

jobs:
build-and-publish:
name: Build and Publish Package to RubyGems.org
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby 3.3.4
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3.4

- name: Check release validity
run: sh .github/scripts/check-release.sh

- name: Publish to RubyGems
env:
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build phlex-icons.gemspec
gem push *.gem

0 comments on commit 5868254

Please sign in to comment.