.github/workflows/rake.yml in expressir-1.4.2-aarch64-linux-gnu vs .github/workflows/rake.yml in expressir-2.0.0
- old
+ new
@@ -16,81 +16,46 @@
group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
cancel-in-progress: true
env:
RUBYGEM_VER: 3.4.22
- BUNDLER_VER: 2.4.22
-# Forcing bundler version to ensure that it is consistent everywhere and
-# does not cause bundler gem reinstalls
-# bundler/rubygems 2.3.22 is a minimal requirement to support gnu/musl differentiation
-# https://github.com/rubygems/rubygems/pull/4488
jobs:
rubocop:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- with:
- submodules: recursive
- name: Install Ruby
- uses: ruby/setup-ruby@master
+ uses: ruby/setup-ruby@v1
with:
- ruby-version: 3.1
- bundler: ${{ env.BUNDLER_VER }}
+ ruby-version: 3.2
bundler-cache: true
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- name: Rubocop
run: bundle exec rake rubocop
rake:
name: test on ruby-${{ matrix.ruby }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
+ ruby: [ '3.3', '3.2', '3.1', '3.0', '2.7' ]
os: [ ubuntu-latest, windows-latest, macos-latest ]
steps:
- name: Checkout
uses: actions/checkout@v4
- with:
- submodules: recursive
- - name: Setup packages
- if: startsWith(matrix.os, 'macos')
- run: brew install autoconf automake libtool
-
- name: Install Ruby
- uses: ruby/setup-ruby@master
+ uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- bundler: ${{ env.BUNDLER_VER }}
- # Rice gem has issues with bundler cache
- # more info https://github.com/lutaml/expressir/runs/2097658383?check_suite_focus=true#step:7:2126
- # but it is not the only issue
- bundler-cache: false
+ bundler-cache: true
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Process cache
- uses: actions/cache@v4
- id: cache
- with:
- path: lib/expressir/express/express_parser.*
- key: v4-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('ext/express_parser/extconf.rb', 'ext/express_parser/antlrgen/**', 'ext/express_parser/express_parser.cpp', '.git/modules/ext/express_parser/antlr4-upstream/HEAD') }}
-
- - name: Build native extension
- if: steps.cache.outputs.cache-hit != 'true'
- run: bundle exec rake compile
-
- name: Run tests
run: |
bundle exec rake
cat .rspec_status
@@ -98,351 +63,28 @@
name: test on ruby-${{ matrix.ruby }} alpine container
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
+ ruby: [ '3.3', '3.2', '3.1', '3.0', '2.7' ]
container: ruby:${{ matrix.ruby }}-alpine
steps:
- name: Install packages
run: |
apk --no-cache --upgrade add build-base git bash tar
- name: Checkout
uses: actions/checkout@v4
- with:
- submodules: recursive
- name: Upgrade RubyGems
if: matrix.ruby == '3.0' || matrix.ruby == '2.7'
run: gem update --system ${{ env.RUBYGEM_VER }} --no-document
- name: Bundle
run: |
git config --global --add safe.directory $PWD
bundle install --jobs 4 --retry 3
- - name: Process cache
- uses: actions/cache@v4
- id: cache
- with:
- path: lib/expressir/express/express_parser.*
- key: v4-alpine-${{ matrix.ruby }}-${{ hashFiles('ext/express_parser/extconf.rb', 'ext/express_parser/antlrgen/**', 'ext/express_parser/express_parser.cpp', '.git/modules/ext/express_parser/antlr4-upstream/HEAD') }}
-
- - name: Build native extension
- if: steps.cache.outputs.cache-hit != 'true'
- run: bundle exec rake compile
-
- name: Run tests
run: |
bundle exec rake
cat .rspec_status
-
- # test release workflow
- pack-ruby:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Setup Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: '3.1'
- bundler: ${{ env.BUNDLER_VER }}
- bundler-cache: false
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Build gem without native extension
- run: gem build expressir.gemspec
-
- - name: Package gem without native extension
- uses: actions/upload-artifact@v4
- with:
- name: pkg-ruby
- path: expressir-*.gem
-
- pack:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- platform: [ linux-gnu, linux-musl, windows, darwin ]
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Setup Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: '3.1'
- bundler-cache: false
- bundler: ${{ env.BUNDLER_VER }}
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Enable swap
- run: |
- sudo fallocate -l 15g /compile.swap
- sudo chmod 600 /compile.swap
- sudo mkswap /compile.swap
- sudo swapon /compile.swap
- sudo swapon --all --verbose
-
- - name: Build gem with native extension
- run: bundle exec rake gem:${{ matrix.platform }}
-
- - name: Package gem with native extension
- uses: actions/upload-artifact@v4
- with:
- name: pkg-${{ matrix.platform }}
- path: pkg/*.gem
-
- verify-ruby:
- name: verify ruby gem on ruby-${{ matrix.ruby }} ${{ matrix.os }}
- needs: pack-ruby
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- os: [ ubuntu-latest, windows-latest, macos-latest ]
- steps:
- - name: Install Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler-cache: false
- bundler: ${{ env.BUNDLER_VER }}
-
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-ruby
- path: pkg
-
- - name: Install gem
- run: gem install -l pkg/expressir-*.gem
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"
-
- verify-ruby-linux-musl:
- name: verify ruby gem on ruby-${{ matrix.ruby }} on alpine container
- needs: pack-ruby
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- container: ruby:${{ matrix.ruby }}-alpine
- steps:
- - name: Install packages
- run: |
- apk --no-cache --upgrade add build-base git bash tar
-
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Upgrade RubyGems
- if: matrix.ruby == '3.0' || matrix.ruby == '2.7'
- run: gem update --system ${{ env.RUBYGEM_VER }} --no-document
-
- - name: Bundle
- run: |
- git config --global --add safe.directory $PWD
- bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-ruby
- path: pkg
-
- - name: Install gem
- run: gem install -l pkg/expressir-*.gem
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"
-
- verify-darwin:
- name: verify MacOS binary gem on ruby-${{ matrix.ruby }}
- needs: pack
- runs-on: macos-latest
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- steps:
- - name: Install Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler-cache: false
- bundler: ${{ env.BUNDLER_VER }}
-
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-darwin
- path: pkg
-
- - name: Install binary gem
- run: gem install -l pkg/expressir-*-$(ruby -e "puts RUBY_PLATFORM.sub(/darwin\d{2}$/, 'darwin')").gem
-# MacOS with have something like x86_64-darwin19, others just x86_64-linux
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"
-
- verify-linux-gnu:
- name: verify Linux (gnu) binary gem on ruby-${{ matrix.ruby }}
- needs: pack
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- steps:
- - name: Install Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler-cache: false
- bundler: ${{ env.BUNDLER_VER }}
-
- - name: Upgrade RubyGems
- if: matrix.ruby == '3.0' || matrix.ruby == '2.7'
- run: gem update --system ${{ env.RUBYGEM_VER }} --no-document
-
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-linux-gnu
- path: pkg
-
- - name: Install binary gem
- run: gem install -l pkg/expressir-*-$(ruby -e "puts RUBY_PLATFORM")-gnu.gem
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"
-
- verify-windows:
- name: verify Windows binary gem on ruby-${{ matrix.ruby }}
- needs: pack
- continue-on-error: true
- runs-on: windows-latest
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- steps:
- - name: Install Ruby
- uses: ruby/setup-ruby@master
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler-cache: false
- bundler: ${{ env.BUNDLER_VER }}
-
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Bundle
- run: bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-windows
- path: pkg
-
- - name: Install binary gem
- run: gem install -l pkg/expressir-*-$(ruby -e "puts RUBY_PLATFORM").gem
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"
-
- verify-linux-musl:
- name: verify Linux (musl) binary gem on ruby-${{ matrix.ruby }}
- needs: pack
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ruby: [ '3.2', '3.1', '3.0', '2.7' ]
- container: ruby:${{ matrix.ruby }}-alpine
- steps:
- - name: Install packages
- run: |
- apk --no-cache --upgrade add build-base git bash tar
-
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Upgrade RubyGems
- if: matrix.ruby == '3.0' || matrix.ruby == '2.7'
- run: gem update --system ${{ env.RUBYGEM_VER }} --no-document
-
- - name: Bundle
- run: |
- git config --global --add safe.directory $PWD
- bundle install --jobs 4 --retry 3
-
- - name: Download packaged gem
- uses: actions/download-artifact@v4
- with:
- name: pkg-linux-musl
- path: pkg
-
- - name: Install binary gem
- run: gem install -l pkg/expressir-*-$(ruby -e "puts RUBY_PLATFORM").gem
-
- - name: Verify
- run: |
- cd $(ruby -e "puts Gem::Specification.find_by_name('expressir').gem_dir")
- ruby bin/rspec
- cat .rspec_status || echo ".rspec_status was not found"