Skip to content

improved Gemfiles for testing and deployment #28

improved Gemfiles for testing and deployment

improved Gemfiles for testing and deployment #28

Workflow file for this run

name: Ruby Gem
on:
push:
branches: ["main"]
tags:
- "v*"
pull_request:
branches: ["main"]
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ["2.7", "3.1", "3.2"]
rails-version: ["5", "6", "7"]
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- run: |
BUNDLE_GEMFILE=gemfiles/Gemfile.rails${{ matrix.rails-version }} bundle install
- name: Run tests
run: BUNDLE_GEMFILE=gemfiles/Gemfile.rails${{ matrix.rails-version }} rake test
build:
name: Build + Publish
needs: test
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- name: Set up Ruby 2.7
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
- run: bundle install
- name: Publish to GPR
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
env:
GEM_HOST_API_KEY: "Bearer ${{secrets.PGR_TOKEN}}"
OWNER: ${{ github.repository_owner }}
- name: Publish to RubyGems
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 *.gemspec
gem push *.gem
env:
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"