Skip to content

Merge pull request #38 from MadBomber/enable_external_client_management #35

Merge pull request #38 from MadBomber/enable_external_client_management

Merge pull request #38 from MadBomber/enable_external_client_management #35

Workflow file for this run

name: CICD
on:
push:
branches: [main]
pull_request:
jobs:
test:
name: Ruby Tests
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ['3.1.3', '3.2', '3.3', '3.4']
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.16
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Install Ruby dependencies
run: |
bundle install
- name: Run specs
run: bundle exec rake
env:
GITHUB_ACTIONS: "true"
release:
name: Release Gem to RubyGems
needs: test
if: github.ref == 'refs/heads/main' && success()
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true
- name: Build the gem
run: |
gem build *.gemspec
gem_name=$(ls *.gem | head -n1)
echo "GEM_FILE=$gem_name" >> $GITHUB_ENV
- name: Check if gem version already exists
id: check_version
run: |
gem_name=$(basename $GEM_FILE .gem)
name=$(echo $gem_name | cut -d'-' -f1)
version=$(echo $gem_name | cut -d'-' -f2-)
echo "Gem: $name, Version: $version"
if gem list ^$name$ -r -a | grep -q $version; then
echo "Gem version $version already exists on RubyGems."
echo "already_published=true" >> $GITHUB_OUTPUT
else
echo "Gem version $version is new."
echo "already_published=false" >> $GITHUB_OUTPUT
fi
- name: Push to RubyGems
if: steps.check_version.outputs.already_published == 'false'
env:
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
run: |
gem push "$GEM_FILE"