.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"