From 366db82152759d8291f5c11066ad128938974c71 Mon Sep 17 00:00:00 2001 From: Tom de Bruijn Date: Wed, 24 Jul 2024 09:17:34 +0200 Subject: [PATCH] Add macOS build to CI Make sure AppSignal works on macOS too. Only test the primary Ruby builds. No need to test every gemset on macOS too. We just want to know if the Ruby gem installs and works. Part of #299 --- .github/workflows/ci.yml | 616 +++++++++++------- Rakefile | 38 +- .../extension_install_failure_spec.rb | 6 +- spec/support/helpers/dependency_helper.rb | 4 + 4 files changed, 435 insertions(+), 229 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c2d2dcd3..c0b26c703 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ # This is a generated file by the `rake build_matrix:github:generate` task. # See `build_matrix.yml` for the build matrix. # Generate this file with `rake build_matrix:github:generate`. -# Generated job count: 117 +# Generated job count: 123 --- name: Ruby gem CI 'on': @@ -73,7 +73,7 @@ jobs: working-directory: spec/integration/diagnose env: LANGUAGE: ruby - ruby_3-3-1: + ruby_3-3-1_ubuntu-latest: name: Ruby 3.3.1 needs: validation runs-on: ubuntu-latest @@ -102,9 +102,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_3-3-1__capistrano2: + ruby_3-3-1__capistrano2_ubuntu-latest: name: Ruby 3.3.1 - capistrano2 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -129,9 +129,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano2.gemfile - ruby_3-3-1__capistrano3: + ruby_3-3-1__capistrano3_ubuntu-latest: name: Ruby 3.3.1 - capistrano3 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -156,9 +156,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano3.gemfile - ruby_3-3-1__dry-monitor: + ruby_3-3-1__dry-monitor_ubuntu-latest: name: Ruby 3.3.1 - dry-monitor - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -183,9 +183,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/dry-monitor.gemfile - ruby_3-3-1__grape: + ruby_3-3-1__grape_ubuntu-latest: name: Ruby 3.3.1 - grape - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -210,9 +210,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/grape.gemfile - ruby_3-3-1__hanami-2-0: + ruby_3-3-1__hanami-2-0_ubuntu-latest: name: Ruby 3.3.1 - hanami-2.0 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -237,9 +237,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.0.gemfile - ruby_3-3-1__hanami-2-1: + ruby_3-3-1__hanami-2-1_ubuntu-latest: name: Ruby 3.3.1 - hanami-2.1 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -264,9 +264,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.1.gemfile - ruby_3-3-1__http5: + ruby_3-3-1__http5_ubuntu-latest: name: Ruby 3.3.1 - http5 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -291,9 +291,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/http5.gemfile - ruby_3-3-1__padrino: + ruby_3-3-1__padrino_ubuntu-latest: name: Ruby 3.3.1 - padrino - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -318,9 +318,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/padrino.gemfile - ruby_3-3-1__psych-3: + ruby_3-3-1__psych-3_ubuntu-latest: name: Ruby 3.3.1 - psych-3 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -345,9 +345,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-3.gemfile - ruby_3-3-1__psych-4: + ruby_3-3-1__psych-4_ubuntu-latest: name: Ruby 3.3.1 - psych-4 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -372,9 +372,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-4.gemfile - ruby_3-3-1__que: + ruby_3-3-1__que_ubuntu-latest: name: Ruby 3.3.1 - que - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -399,9 +399,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que.gemfile - ruby_3-3-1__que_beta: + ruby_3-3-1__que_beta_ubuntu-latest: name: Ruby 3.3.1 - que_beta - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -426,9 +426,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que_beta.gemfile - ruby_3-3-1__rails-6-1: + ruby_3-3-1__rails-6-1_ubuntu-latest: name: Ruby 3.3.1 - rails-6.1 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -453,9 +453,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_3-3-1__rails-7-0: + ruby_3-3-1__rails-7-0_ubuntu-latest: name: Ruby 3.3.1 - rails-7.0 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -480,9 +480,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_3-3-1__rails-7-1: + ruby_3-3-1__rails-7-1_ubuntu-latest: name: Ruby 3.3.1 - rails-7.1 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -507,9 +507,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.1.gemfile - ruby_3-3-1__sequel: + ruby_3-3-1__sequel_ubuntu-latest: name: Ruby 3.3.1 - sequel - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -534,9 +534,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sequel.gemfile - ruby_3-3-1__sinatra: + ruby_3-3-1__sinatra_ubuntu-latest: name: Ruby 3.3.1 - sinatra - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -561,9 +561,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sinatra.gemfile - ruby_3-3-1__webmachine1: + ruby_3-3-1__webmachine1_ubuntu-latest: name: Ruby 3.3.1 - webmachine1 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -588,9 +588,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine1.gemfile - ruby_3-3-1__webmachine2: + ruby_3-3-1__webmachine2_ubuntu-latest: name: Ruby 3.3.1 - webmachine2 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -615,9 +615,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine2.gemfile - ruby_3-3-1__redis-4: + ruby_3-3-1__redis-4_ubuntu-latest: name: Ruby 3.3.1 - redis-4 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -642,9 +642,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-4.gemfile - ruby_3-3-1__redis-5: + ruby_3-3-1__redis-5_ubuntu-latest: name: Ruby 3.3.1 - redis-5 - needs: ruby_3-3-1 + needs: ruby_3-3-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -669,7 +669,36 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-5.gemfile - ruby_3-2-1: + ruby_3-3-1_macos-14: + name: Ruby 3.3.1 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.3.1 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile + ruby_3-2-1_ubuntu-latest: name: Ruby 3.2.1 needs: validation runs-on: ubuntu-latest @@ -698,9 +727,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_3-2-1__capistrano2: + ruby_3-2-1__capistrano2_ubuntu-latest: name: Ruby 3.2.1 - capistrano2 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -725,9 +754,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano2.gemfile - ruby_3-2-1__capistrano3: + ruby_3-2-1__capistrano3_ubuntu-latest: name: Ruby 3.2.1 - capistrano3 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -752,9 +781,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano3.gemfile - ruby_3-2-1__dry-monitor: + ruby_3-2-1__dry-monitor_ubuntu-latest: name: Ruby 3.2.1 - dry-monitor - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -779,9 +808,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/dry-monitor.gemfile - ruby_3-2-1__grape: + ruby_3-2-1__grape_ubuntu-latest: name: Ruby 3.2.1 - grape - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -806,9 +835,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/grape.gemfile - ruby_3-2-1__hanami-2-0: + ruby_3-2-1__hanami-2-0_ubuntu-latest: name: Ruby 3.2.1 - hanami-2.0 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -833,9 +862,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.0.gemfile - ruby_3-2-1__hanami-2-1: + ruby_3-2-1__hanami-2-1_ubuntu-latest: name: Ruby 3.2.1 - hanami-2.1 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -860,9 +889,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.1.gemfile - ruby_3-2-1__http5: + ruby_3-2-1__http5_ubuntu-latest: name: Ruby 3.2.1 - http5 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -887,9 +916,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/http5.gemfile - ruby_3-2-1__padrino: + ruby_3-2-1__padrino_ubuntu-latest: name: Ruby 3.2.1 - padrino - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -914,9 +943,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/padrino.gemfile - ruby_3-2-1__psych-3: + ruby_3-2-1__psych-3_ubuntu-latest: name: Ruby 3.2.1 - psych-3 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -941,9 +970,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-3.gemfile - ruby_3-2-1__psych-4: + ruby_3-2-1__psych-4_ubuntu-latest: name: Ruby 3.2.1 - psych-4 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -968,9 +997,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-4.gemfile - ruby_3-2-1__que: + ruby_3-2-1__que_ubuntu-latest: name: Ruby 3.2.1 - que - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -995,9 +1024,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que.gemfile - ruby_3-2-1__que_beta: + ruby_3-2-1__que_beta_ubuntu-latest: name: Ruby 3.2.1 - que_beta - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1022,9 +1051,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que_beta.gemfile - ruby_3-2-1__rails-6-1: + ruby_3-2-1__rails-6-1_ubuntu-latest: name: Ruby 3.2.1 - rails-6.1 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1049,9 +1078,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_3-2-1__rails-7-0: + ruby_3-2-1__rails-7-0_ubuntu-latest: name: Ruby 3.2.1 - rails-7.0 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1076,9 +1105,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_3-2-1__rails-7-1: + ruby_3-2-1__rails-7-1_ubuntu-latest: name: Ruby 3.2.1 - rails-7.1 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1103,9 +1132,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.1.gemfile - ruby_3-2-1__sequel: + ruby_3-2-1__sequel_ubuntu-latest: name: Ruby 3.2.1 - sequel - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1130,9 +1159,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sequel.gemfile - ruby_3-2-1__sinatra: + ruby_3-2-1__sinatra_ubuntu-latest: name: Ruby 3.2.1 - sinatra - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1157,9 +1186,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sinatra.gemfile - ruby_3-2-1__webmachine1: + ruby_3-2-1__webmachine1_ubuntu-latest: name: Ruby 3.2.1 - webmachine1 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1184,9 +1213,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine1.gemfile - ruby_3-2-1__webmachine2: + ruby_3-2-1__webmachine2_ubuntu-latest: name: Ruby 3.2.1 - webmachine2 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1211,9 +1240,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine2.gemfile - ruby_3-2-1__redis-4: + ruby_3-2-1__redis-4_ubuntu-latest: name: Ruby 3.2.1 - redis-4 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1238,9 +1267,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-4.gemfile - ruby_3-2-1__redis-5: + ruby_3-2-1__redis-5_ubuntu-latest: name: Ruby 3.2.1 - redis-5 - needs: ruby_3-2-1 + needs: ruby_3-2-1_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1265,7 +1294,36 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-5.gemfile - ruby_3-1-3: + ruby_3-2-1_macos-14: + name: Ruby 3.2.1 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2.1 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile + ruby_3-1-3_ubuntu-latest: name: Ruby 3.1.3 needs: validation runs-on: ubuntu-latest @@ -1294,9 +1352,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_3-1-3__capistrano2: + ruby_3-1-3__capistrano2_ubuntu-latest: name: Ruby 3.1.3 - capistrano2 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1321,9 +1379,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano2.gemfile - ruby_3-1-3__capistrano3: + ruby_3-1-3__capistrano3_ubuntu-latest: name: Ruby 3.1.3 - capistrano3 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1348,9 +1406,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano3.gemfile - ruby_3-1-3__dry-monitor: + ruby_3-1-3__dry-monitor_ubuntu-latest: name: Ruby 3.1.3 - dry-monitor - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1375,9 +1433,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/dry-monitor.gemfile - ruby_3-1-3__grape: + ruby_3-1-3__grape_ubuntu-latest: name: Ruby 3.1.3 - grape - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1402,9 +1460,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/grape.gemfile - ruby_3-1-3__hanami-2-0: + ruby_3-1-3__hanami-2-0_ubuntu-latest: name: Ruby 3.1.3 - hanami-2.0 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1429,9 +1487,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.0.gemfile - ruby_3-1-3__hanami-2-1: + ruby_3-1-3__hanami-2-1_ubuntu-latest: name: Ruby 3.1.3 - hanami-2.1 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1456,9 +1514,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.1.gemfile - ruby_3-1-3__http5: + ruby_3-1-3__http5_ubuntu-latest: name: Ruby 3.1.3 - http5 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1483,9 +1541,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/http5.gemfile - ruby_3-1-3__padrino: + ruby_3-1-3__padrino_ubuntu-latest: name: Ruby 3.1.3 - padrino - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1510,9 +1568,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/padrino.gemfile - ruby_3-1-3__psych-3: + ruby_3-1-3__psych-3_ubuntu-latest: name: Ruby 3.1.3 - psych-3 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1537,9 +1595,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-3.gemfile - ruby_3-1-3__psych-4: + ruby_3-1-3__psych-4_ubuntu-latest: name: Ruby 3.1.3 - psych-4 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1564,9 +1622,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-4.gemfile - ruby_3-1-3__que: + ruby_3-1-3__que_ubuntu-latest: name: Ruby 3.1.3 - que - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1591,9 +1649,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que.gemfile - ruby_3-1-3__que_beta: + ruby_3-1-3__que_beta_ubuntu-latest: name: Ruby 3.1.3 - que_beta - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1618,9 +1676,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que_beta.gemfile - ruby_3-1-3__rails-6-1: + ruby_3-1-3__rails-6-1_ubuntu-latest: name: Ruby 3.1.3 - rails-6.1 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1645,9 +1703,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_3-1-3__rails-7-0: + ruby_3-1-3__rails-7-0_ubuntu-latest: name: Ruby 3.1.3 - rails-7.0 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1672,9 +1730,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_3-1-3__rails-7-1: + ruby_3-1-3__rails-7-1_ubuntu-latest: name: Ruby 3.1.3 - rails-7.1 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1699,9 +1757,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.1.gemfile - ruby_3-1-3__sequel: + ruby_3-1-3__sequel_ubuntu-latest: name: Ruby 3.1.3 - sequel - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1726,9 +1784,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sequel.gemfile - ruby_3-1-3__sinatra: + ruby_3-1-3__sinatra_ubuntu-latest: name: Ruby 3.1.3 - sinatra - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1753,9 +1811,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sinatra.gemfile - ruby_3-1-3__webmachine1: + ruby_3-1-3__webmachine1_ubuntu-latest: name: Ruby 3.1.3 - webmachine1 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1780,9 +1838,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine1.gemfile - ruby_3-1-3__webmachine2: + ruby_3-1-3__webmachine2_ubuntu-latest: name: Ruby 3.1.3 - webmachine2 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1807,9 +1865,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine2.gemfile - ruby_3-1-3__redis-4: + ruby_3-1-3__redis-4_ubuntu-latest: name: Ruby 3.1.3 - redis-4 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1834,9 +1892,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-4.gemfile - ruby_3-1-3__redis-5: + ruby_3-1-3__redis-5_ubuntu-latest: name: Ruby 3.1.3 - redis-5 - needs: ruby_3-1-3 + needs: ruby_3-1-3_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1861,7 +1919,36 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-5.gemfile - ruby_3-0-5: + ruby_3-1-3_macos-14: + name: Ruby 3.1.3 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.1.3 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile + ruby_3-0-5_ubuntu-latest: name: Ruby 3.0.5 needs: validation runs-on: ubuntu-latest @@ -1890,9 +1977,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_3-0-5__capistrano2: + ruby_3-0-5__capistrano2_ubuntu-latest: name: Ruby 3.0.5 - capistrano2 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1917,9 +2004,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano2.gemfile - ruby_3-0-5__capistrano3: + ruby_3-0-5__capistrano3_ubuntu-latest: name: Ruby 3.0.5 - capistrano3 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1944,9 +2031,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano3.gemfile - ruby_3-0-5__dry-monitor: + ruby_3-0-5__dry-monitor_ubuntu-latest: name: Ruby 3.0.5 - dry-monitor - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1971,9 +2058,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/dry-monitor.gemfile - ruby_3-0-5__grape: + ruby_3-0-5__grape_ubuntu-latest: name: Ruby 3.0.5 - grape - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -1998,9 +2085,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/grape.gemfile - ruby_3-0-5__hanami-2-0: + ruby_3-0-5__hanami-2-0_ubuntu-latest: name: Ruby 3.0.5 - hanami-2.0 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2025,9 +2112,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.0.gemfile - ruby_3-0-5__hanami-2-1: + ruby_3-0-5__hanami-2-1_ubuntu-latest: name: Ruby 3.0.5 - hanami-2.1 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2052,9 +2139,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/hanami-2.1.gemfile - ruby_3-0-5__http5: + ruby_3-0-5__http5_ubuntu-latest: name: Ruby 3.0.5 - http5 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2079,9 +2166,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/http5.gemfile - ruby_3-0-5__padrino: + ruby_3-0-5__padrino_ubuntu-latest: name: Ruby 3.0.5 - padrino - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2106,9 +2193,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/padrino.gemfile - ruby_3-0-5__psych-3: + ruby_3-0-5__psych-3_ubuntu-latest: name: Ruby 3.0.5 - psych-3 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2133,9 +2220,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-3.gemfile - ruby_3-0-5__psych-4: + ruby_3-0-5__psych-4_ubuntu-latest: name: Ruby 3.0.5 - psych-4 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2160,9 +2247,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-4.gemfile - ruby_3-0-5__que: + ruby_3-0-5__que_ubuntu-latest: name: Ruby 3.0.5 - que - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2187,9 +2274,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que.gemfile - ruby_3-0-5__que_beta: + ruby_3-0-5__que_beta_ubuntu-latest: name: Ruby 3.0.5 - que_beta - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2214,9 +2301,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que_beta.gemfile - ruby_3-0-5__rails-6-0: + ruby_3-0-5__rails-6-0_ubuntu-latest: name: Ruby 3.0.5 - rails-6.0 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2241,9 +2328,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.0.gemfile - ruby_3-0-5__rails-6-1: + ruby_3-0-5__rails-6-1_ubuntu-latest: name: Ruby 3.0.5 - rails-6.1 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2268,9 +2355,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_3-0-5__rails-7-0: + ruby_3-0-5__rails-7-0_ubuntu-latest: name: Ruby 3.0.5 - rails-7.0 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2295,9 +2382,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_3-0-5__rails-7-1: + ruby_3-0-5__rails-7-1_ubuntu-latest: name: Ruby 3.0.5 - rails-7.1 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2322,9 +2409,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.1.gemfile - ruby_3-0-5__sequel: + ruby_3-0-5__sequel_ubuntu-latest: name: Ruby 3.0.5 - sequel - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2349,9 +2436,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sequel.gemfile - ruby_3-0-5__sinatra: + ruby_3-0-5__sinatra_ubuntu-latest: name: Ruby 3.0.5 - sinatra - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2376,9 +2463,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sinatra.gemfile - ruby_3-0-5__webmachine1: + ruby_3-0-5__webmachine1_ubuntu-latest: name: Ruby 3.0.5 - webmachine1 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2403,9 +2490,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine1.gemfile - ruby_3-0-5__webmachine2: + ruby_3-0-5__webmachine2_ubuntu-latest: name: Ruby 3.0.5 - webmachine2 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2430,9 +2517,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine2.gemfile - ruby_3-0-5__redis-4: + ruby_3-0-5__redis-4_ubuntu-latest: name: Ruby 3.0.5 - redis-4 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2457,9 +2544,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-4.gemfile - ruby_3-0-5__redis-5: + ruby_3-0-5__redis-5_ubuntu-latest: name: Ruby 3.0.5 - redis-5 - needs: ruby_3-0-5 + needs: ruby_3-0-5_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2484,7 +2571,36 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-5.gemfile - ruby_2-7-8: + ruby_3-0-5_macos-14: + name: Ruby 3.0.5 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.0.5 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile + ruby_2-7-8_ubuntu-latest: name: Ruby 2.7.8 needs: validation runs-on: ubuntu-latest @@ -2513,9 +2629,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_2-7-8__capistrano2: + ruby_2-7-8__capistrano2_ubuntu-latest: name: Ruby 2.7.8 - capistrano2 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2540,9 +2656,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano2.gemfile - ruby_2-7-8__capistrano3: + ruby_2-7-8__capistrano3_ubuntu-latest: name: Ruby 2.7.8 - capistrano3 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2567,9 +2683,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/capistrano3.gemfile - ruby_2-7-8__grape: + ruby_2-7-8__grape_ubuntu-latest: name: Ruby 2.7.8 - grape - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2594,9 +2710,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/grape.gemfile - ruby_2-7-8__http5: + ruby_2-7-8__http5_ubuntu-latest: name: Ruby 2.7.8 - http5 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2621,9 +2737,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/http5.gemfile - ruby_2-7-8__padrino: + ruby_2-7-8__padrino_ubuntu-latest: name: Ruby 2.7.8 - padrino - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2648,9 +2764,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/padrino.gemfile - ruby_2-7-8__psych-3: + ruby_2-7-8__psych-3_ubuntu-latest: name: Ruby 2.7.8 - psych-3 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2675,9 +2791,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-3.gemfile - ruby_2-7-8__psych-4: + ruby_2-7-8__psych-4_ubuntu-latest: name: Ruby 2.7.8 - psych-4 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2702,9 +2818,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/psych-4.gemfile - ruby_2-7-8__que: + ruby_2-7-8__que_ubuntu-latest: name: Ruby 2.7.8 - que - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2729,9 +2845,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que.gemfile - ruby_2-7-8__que_beta: + ruby_2-7-8__que_beta_ubuntu-latest: name: Ruby 2.7.8 - que_beta - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2756,9 +2872,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/que_beta.gemfile - ruby_2-7-8__rails-6-0: + ruby_2-7-8__rails-6-0_ubuntu-latest: name: Ruby 2.7.8 - rails-6.0 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2783,9 +2899,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.0.gemfile - ruby_2-7-8__rails-6-1: + ruby_2-7-8__rails-6-1_ubuntu-latest: name: Ruby 2.7.8 - rails-6.1 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2810,9 +2926,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_2-7-8__rails-7-0: + ruby_2-7-8__rails-7-0_ubuntu-latest: name: Ruby 2.7.8 - rails-7.0 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2837,9 +2953,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_2-7-8__sequel: + ruby_2-7-8__sequel_ubuntu-latest: name: Ruby 2.7.8 - sequel - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2864,9 +2980,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sequel.gemfile - ruby_2-7-8__sinatra: + ruby_2-7-8__sinatra_ubuntu-latest: name: Ruby 2.7.8 - sinatra - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2891,9 +3007,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/sinatra.gemfile - ruby_2-7-8__webmachine1: + ruby_2-7-8__webmachine1_ubuntu-latest: name: Ruby 2.7.8 - webmachine1 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2918,9 +3034,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine1.gemfile - ruby_2-7-8__webmachine2: + ruby_2-7-8__webmachine2_ubuntu-latest: name: Ruby 2.7.8 - webmachine2 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2945,9 +3061,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/webmachine2.gemfile - ruby_2-7-8__redis-4: + ruby_2-7-8__redis-4_ubuntu-latest: name: Ruby 2.7.8 - redis-4 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2972,9 +3088,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-4.gemfile - ruby_2-7-8__redis-5: + ruby_2-7-8__redis-5_ubuntu-latest: name: Ruby 2.7.8 - redis-5 - needs: ruby_2-7-8 + needs: ruby_2-7-8_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -2999,7 +3115,36 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/redis-5.gemfile - ruby_jruby-9-4-7-0: + ruby_2-7-8_macos-14: + name: Ruby 2.7.8 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7.8 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile + ruby_jruby-9-4-7-0_ubuntu-latest: name: Ruby jruby-9.4.7.0 needs: validation runs-on: ubuntu-latest @@ -3028,9 +3173,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile - ruby_jruby-9-4-7-0__rails-6-0: + ruby_jruby-9-4-7-0__rails-6-0_ubuntu-latest: name: Ruby jruby-9.4.7.0 - rails-6.0 - needs: ruby_jruby-9-4-7-0 + needs: ruby_jruby-9-4-7-0_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -3055,9 +3200,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.0.gemfile - ruby_jruby-9-4-7-0__rails-6-1: + ruby_jruby-9-4-7-0__rails-6-1_ubuntu-latest: name: Ruby jruby-9.4.7.0 - rails-6.1 - needs: ruby_jruby-9-4-7-0 + needs: ruby_jruby-9-4-7-0_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -3082,9 +3227,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-6.1.gemfile - ruby_jruby-9-4-7-0__rails-7-0: + ruby_jruby-9-4-7-0__rails-7-0_ubuntu-latest: name: Ruby jruby-9.4.7.0 - rails-7.0 - needs: ruby_jruby-9-4-7-0 + needs: ruby_jruby-9-4-7-0_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -3109,9 +3254,9 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.0.gemfile - ruby_jruby-9-4-7-0__rails-7-1: + ruby_jruby-9-4-7-0__rails-7-1_ubuntu-latest: name: Ruby jruby-9.4.7.0 - rails-7.1 - needs: ruby_jruby-9-4-7-0 + needs: ruby_jruby-9-4-7-0_ubuntu-latest runs-on: ubuntu-latest steps: - name: Check out repository @@ -3136,3 +3281,32 @@ jobs: JRUBY_OPTS: '' COV: '1' BUNDLE_GEMFILE: gemfiles/rails-7.1.gemfile + ruby_jruby-9-4-7-0_macos-14: + name: Ruby jruby-9.4.7.0 (macos-14) + needs: validation + runs-on: macos-14 + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: jruby-9.4.7.0 + bundler-cache: true + - name: Install gem extension + run: "./support/bundler_wrapper exec rake extension:install" + - name: Print extension install report + run: "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report + file found'" + - name: Print Makefile log file + run: "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file + found'" + - name: Run tests + run: "./support/bundler_wrapper exec rake test" + - name: Run tests without extension + run: "./support/bundler_wrapper exec rake test:failure" + env: + RAILS_ENV: test + JRUBY_OPTS: '' + COV: '1' + BUNDLE_GEMFILE: gemfiles/no_dependencies.gemfile diff --git a/Rakefile b/Rakefile index e350f7eba..f8e7655b0 100644 --- a/Rakefile +++ b/Rakefile @@ -20,11 +20,14 @@ VERSION_MANAGERS = { } }.freeze -def build_job(ruby_version, ruby_gem = nil) +def build_job(ruby_version, ruby_gem: nil, runs_on: DEFAULT_RUNS_ON) + name = "Ruby #{ruby_version}" + name = "#{name} - #{ruby_gem}" if ruby_gem + name = "#{name} (#{runs_on})" if runs_on != DEFAULT_RUNS_ON { - "name" => "Ruby #{ruby_version}#{" - #{ruby_gem}" if ruby_gem}", + "name" => name, "needs" => "validation", - "runs-on" => "ubuntu-latest", + "runs-on" => runs_on, "steps" => [ { "name" => "Check out repository", @@ -54,9 +57,10 @@ def build_job(ruby_version, ruby_gem = nil) } end -def build_matrix_key(ruby_version, ruby_gem = nil) +def build_matrix_key(ruby_version, ruby_gem: nil, runs_on: DEFAULT_RUNS_ON) base = "ruby_#{ruby_version}" base = "#{base}__#{ruby_gem}" if ruby_gem + base = "#{base}_#{runs_on}" base.downcase.gsub(/\W/, "-") end @@ -65,6 +69,8 @@ def gems_with_gemfiles end GITHUB_ACTION_WORKFLOW_FILE = ".github/workflows/ci.yml" +PRIMARY_JOB_GEMSET = "no_dependencies" +DEFAULT_RUNS_ON = "ubuntu-latest" namespace :build_matrix do namespace :github do @@ -79,12 +85,12 @@ namespace :build_matrix do gemset_for_ruby(ruby, matrix).each do |ruby_gem| next unless included_for_ruby?(matrix, ruby_gem, ruby) - is_primary_job = ruby_gem["gem"] == "no_dependencies" + is_primary_job = ruby_gem["gem"] == PRIMARY_JOB_GEMSET job = if is_primary_job build_job(ruby_version) else - build_job(ruby_version, ruby_gem["gem"]) + build_job(ruby_version, :ruby_gem => ruby_gem["gem"]) end job["env"] = matrix["env"] .merge("BUNDLE_GEMFILE" => "gemfiles/#{ruby_gem["gem"]}.gemfile") @@ -105,10 +111,28 @@ namespace :build_matrix do else job["needs"] = build_matrix_key(ruby["ruby"]) job["steps"] << test_step - builds[build_matrix_key(ruby["ruby"], ruby_gem["gem"])] = job + builds[build_matrix_key(ruby["ruby"], :ruby_gem => ruby_gem["gem"])] = job end end + + # Add build for macOS + ruby_gem = PRIMARY_JOB_GEMSET + runs_on = "macos-14" + job = build_job(ruby_version, :runs_on => runs_on) + job["env"] = matrix["env"] + .merge("BUNDLE_GEMFILE" => "gemfiles/#{ruby_gem}.gemfile") + + job["steps"] << { + "name" => "Run tests", + "run" => "./support/bundler_wrapper exec rake test" + } + job["steps"] << { + "name" => "Run tests without extension", + "run" => "./support/bundler_wrapper exec rake test:failure" + } + builds[build_matrix_key(ruby["ruby"], :runs_on => runs_on)] = job end + github["jobs"] = github["jobs"].merge(builds) job_count = github["jobs"].count diff --git a/spec/lib/appsignal/extension_install_failure_spec.rb b/spec/lib/appsignal/extension_install_failure_spec.rb index bc51d187d..405ece379 100644 --- a/spec/lib/appsignal/extension_install_failure_spec.rb +++ b/spec/lib/appsignal/extension_install_failure_spec.rb @@ -6,7 +6,11 @@ expect(stderr).to include("ERROR: AppSignal failed to load extension") error_message = if DependencyHelper.running_jruby? - "cannot open shared object file" + if DependencyHelper.macos? + "Could not open library" + else + "cannot open shared object file" + end else "LoadError: cannot load such file" end diff --git a/spec/support/helpers/dependency_helper.rb b/spec/support/helpers/dependency_helper.rb index 99172d703..8a3beecd8 100644 --- a/spec/support/helpers/dependency_helper.rb +++ b/spec/support/helpers/dependency_helper.rb @@ -1,6 +1,10 @@ module DependencyHelper module_function + def macos? + RbConfig::CONFIG["host_os"].include?("darwin") + end + def ruby_version Gem::Version.new(RUBY_VERSION) end