Skip to content

Merge pull request #9025 from matsadler/update-magnus-gem-template #7242

Merge pull request #9025 from matsadler/update-magnus-gem-template

Merge pull request #9025 from matsadler/update-magnus-gem-template #7242

name: realworld
on:
pull_request:
push:
branches:
- master
concurrency:
group: ci-${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
permissions: # added using https://github.com/step-security/secure-workflows
contents: read
jobs:
bundler:
name: Realworld Bundler on ${{ matrix.os.name }} (${{ matrix.ruby.name }})
runs-on: ${{ matrix.os.value }}
strategy:
fail-fast: false
matrix:
os:
- { name: Ubuntu, value: ubuntu-24.04 }
ruby:
- { name: ruby-3.2, value: 3.2.9 }
- { name: ruby-3.3, value: 3.3.9 }
- { name: ruby-3.4, value: 3.4.5 }
include:
- { os: { name: macOS, value: macos-15 }, ruby: { name: ruby-3.2, value: 3.2.9 } }
- { os: { name: macOS, value: macos-15 }, ruby: { name: ruby-3.3, value: 3.3.9 } }
- { os: { name: macOS, value: macos-15 }, ruby: { name: ruby-3.4, value: 3.4.5 } }
env:
RGV: ..
RUBYOPT: --disable-gems
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup ruby
uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
with:
ruby-version: ${{ matrix.ruby.value }}
bundler: none
- name: Prepare dependencies
run: bin/rake dev:deps
- name: Run Test
run: bin/rake spec:realworld
- name: Upload used cassettes as artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: cassettes-bundler-${{ matrix.os.value }}-${{ matrix.ruby.name }}
path: ./bundler/spec/support/artifice/used_cassettes.txt
timeout-minutes: 20
tapioca:
name: Tapioca
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup ruby
uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
with:
ruby-version: 3.4.5
bundler: none
- name: Prepare tapioca
run: ../../../../bin/bundle install
working-directory: bundler/spec/realworld/fixtures/tapioca
- name: Run tapioca
run: ../../../../bin/bundle exec tapioca init
working-directory: bundler/spec/realworld/fixtures/tapioca
timeout-minutes: 20
system_rubygems_bundler:
name: Realworld Bundler against system Rubygems (${{ matrix.ruby.name }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- { ruby: { name: ruby-3.2, value: 3.2.9 } }
- { ruby: { name: ruby-3.3, value: 3.3.9 } }
- { ruby: { name: ruby-3.4, value: 3.4.5 } }
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup ruby
uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
with:
ruby-version: ${{ matrix.ruby.value }}
bundler: none
- name: Prepare dependencies
run: bin/rake dev:deps
- name: Run Test
run: bin/rake spec:realworld
- name: Upload used cassettes as artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: cassettes-system-rubygems-bundler-${{ matrix.ruby.name }}
path: ./bundler/spec/support/artifice/used_cassettes.txt
timeout-minutes: 20
check_unused_cassettes:
name: Check unused cassettes
needs: [bundler, system_rubygems_bundler]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup ruby
uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
with:
ruby-version: 3.4.5
bundler: none
- name: Prepare dependencies
run: bin/rake setup
- name: Download all used cassettes as artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: ./bundler/spec/support/artifice/used_vcr_cassettes
- name: Check unused cassettes
run: bin/rake spec:realworld:check_unused_cassettes
all-pass:
name: All realworld-bundler jobs pass
if: always()
needs:
- bundler
- tapioca
- system_rubygems_bundler
- check_unused_cassettes
runs-on: ubuntu-latest
steps:
- name: check dependent jobs
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
jobs: ${{ toJSON(needs) }}