Add full inlined matrix #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Unit Test | |
on: | |
push: | |
workflow_call: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
name: Test ${{ matrix.spec.task }} ${{ matrix.spec.appraisal }} (${{ matrix.engine.name }} ${{ matrix.engine.version }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
engine: | |
- name: ruby | |
version: '3.4' | |
- name: ruby | |
version: '3.3' | |
- name: ruby | |
version: '3.2' | |
- name: ruby | |
version: '3.1' | |
- name: ruby | |
version: '3.0' | |
- name: ruby | |
version: '2.7' | |
- name: ruby | |
version: '2.6' | |
- name: ruby | |
version: '2.5' | |
- name: jruby | |
version: '9.4' | |
- name: jruby | |
version: '9.3' | |
- name: jruby | |
version: '9.2' | |
spec: | |
- task: 'main' | |
- task: 'main' | |
appraisal: 'core-old' | |
- task: 'appsec:main' | |
- task: 'profiling:main' | |
- task: 'profiling:main' | |
appraisal: 'opentelemetry' | |
- task: 'profiling:ractors' | |
- task: 'contrib' | |
- task: 'opentelemetry' | |
appraisal: 'opentelemetry' | |
- task: 'action_pack' | |
appraisal: 'activesupport' | |
- task: 'action_view' | |
appraisal: 'activesupport' | |
- task: 'active_model_serializers' | |
appraisal: 'activesupport' | |
- task: 'active_record' | |
appraisal: 'relational_db' | |
- task: 'active_support' | |
appraisal: 'activesupport' | |
- task: 'autoinstrument' | |
appraisal: 'sinatra-2' | |
- task: 'aws' | |
appraisal: 'aws' | |
- task: 'concurrent_ruby' | |
appraisal: 'contrib' | |
- task: 'dalli' | |
appraisal: 'contrib' | |
- task: 'dalli' | |
appraisal: 'contrib-old' | |
- task: 'delayed_job' | |
appraisal: 'relational-db' | |
- task: 'elasticsearch' | |
appraisal: 'elasticsearch-7' | |
- task: 'elasticsearch' | |
appraisal: 'elasticsearch-8' | |
- task: 'ethon' | |
appraisal: 'http' | |
- task: 'excon' | |
appraisal: 'http' | |
- task: 'faraday' | |
appraisal: 'http' | |
- task: 'faraday' | |
appraisal: 'contrib-old' | |
- task: 'grape' | |
appraisal: 'activesupport' | |
- task: 'graphql' | |
appraisal: 'graphql-2.2' | |
- task: 'graphql' | |
appraisal: 'graphql-2.1' | |
- task: 'graphql' | |
appraisal: 'graphql-2.0' | |
- task: 'graphql' | |
appraisal: 'graphql-1.13' | |
- task: 'grpc' | |
appraisal: 'contrib' | |
- task: 'http' | |
appraisal: 'http' | |
- task: 'httpclient' | |
appraisal: 'http' | |
- task: 'httprb' | |
appraisal: 'http' | |
- task: 'kafka' | |
appraisal: 'activesupport' | |
- task: 'lograge' | |
appraisal: 'activesupport' | |
- task: 'mongodb' | |
appraisal: 'contrib' | |
- task: 'mysql2' | |
appraisal: 'relational_db' | |
- task: 'opensearch' | |
appraisal: 'opensearch-2' | |
- task: 'opensearch' | |
appraisal: 'opensearch-3' | |
- task: 'pg' | |
appraisal: 'relational_db' | |
- task: 'presto' | |
appraisal: 'contrib-old' | |
- task: 'que' | |
appraisal: 'contrib' | |
- task: 'racecar' | |
appraisal: 'activesupport' | |
- task: 'rack' | |
appraisal: 'rack-1' | |
- task: 'rack' | |
appraisal: 'rack-2' | |
- task: 'rack' | |
appraisal: 'rack-3' | |
- task: 'rake' | |
appraisal: 'contrib' | |
- task: 'resque' | |
appraisal: 'contrib' | |
- task: 'resque' | |
appraisal: 'resque2-redis3' | |
- task: 'resque' | |
appraisal: 'resque2-redis4' | |
- task: 'rest-client' | |
appraisal: 'http' | |
- task: 'roda' | |
appraisal: 'contrib' | |
- task: 'sequel' | |
appraisal: 'relational_db' | |
- task: 'shoryuken' | |
appraisal: 'aws' | |
- task: 'sidekiq' | |
appraisal: 'contrib' | |
- task: 'sneakers' | |
appraisal: 'contrib' | |
- task: 'stripe' | |
appraisal: 'http' | |
- task: 'sucker_punch' | |
appraisal: 'contrib' | |
- task: 'suite' | |
appraisal: 'contrib' | |
- task: 'trilogy' | |
appraisal: 'relational_db' | |
- task: 'rails' | |
appraisal: 'rails4-mysql2' | |
- task: 'rails' | |
appraisal: 'rails4-postgres' | |
- task: 'rails' | |
appraisal: 'rails5-mysql2' | |
- task: 'rails' | |
appraisal: 'rails5-postgres' | |
- task: 'rails' | |
appraisal: 'rails6-mysql2' | |
- task: 'rails' | |
appraisal: 'rails6-postgres' | |
- task: 'rails' | |
appraisal: 'rails61-mysql2' | |
- task: 'rails' | |
appraisal: 'rails61-postgres' | |
- task: 'rails' | |
appraisal: 'rails61-trilogy' | |
- task: 'railsautoinstrument' | |
appraisal: 'rails4-postgres' | |
- task: 'railsautoinstrument' | |
appraisal: 'rails5-postgres' | |
- task: 'railsautoinstrument' | |
appraisal: 'rails6-postgres' | |
- task: 'railsdisableenv' | |
appraisal: 'rails4-postgres' | |
- task: 'railsdisableenv' | |
appraisal: 'rails5-postgres' | |
- task: 'railsdisableenv' | |
appraisal: 'rails6-postgres' | |
- task: 'railsdisableenv' | |
appraisal: 'rails61-postgres' | |
- task: 'railsredis_activesupport' | |
appraisal: 'rails4-postgres-redis' | |
- task: 'railsredis_activesupport' | |
appraisal: 'rails5-postgres-redis-activesupport' | |
- task: 'railsredis_activesupport' | |
appraisal: 'rails6-postgres-redis-activesupport' | |
- task: 'railsactivejob' | |
appraisal: 'rails4-postgres-sidekiq' | |
- task: 'railsactivejob' | |
appraisal: 'rails5-postgres-sidekiq' | |
- task: 'railsactivejob' | |
appraisal: 'rails6-postgres-sidekiq' | |
- task: 'railsactivejob' | |
appraisal: 'rails61-postgres-sidekiq' | |
- task: 'railssemanticlogger' | |
appraisal: 'rails4-semantic-logger' | |
- task: 'railsemanticlogger' | |
appraisal: 'rails5-semantic-logger' | |
- task: 'railssemanticlogger' | |
appraisal: 'rails6-semantic-logger' | |
- task: 'railssemanticlogger' | |
appraisal: 'rails61-semantic-logger' | |
- task: 'action_cable' | |
appraisal: 'rails5-mysql2' | |
- task: 'action_cable' | |
appraisal: 'rails6-mysql2' | |
- task: 'action_cable' | |
appraisal: 'rails61-mysql2' | |
- task: 'action_mailer' | |
appraisal: 'rails5-mysql2' | |
- task: 'action_mailer' | |
appraisal: 'rails6-mysql2' | |
- task: 'action_mailer' | |
appraisal: 'rails61-mysql2' | |
- task: 'railsredis' | |
appraisal: 'rails5-postgres-redis' | |
- task: 'railsredis' | |
appraisal: 'rails6-postgres-redis' | |
- task: 'railsredis' | |
appraisal: 'rails61-postgres-redis' | |
- task: 'hanami' | |
appraisal: 'hanami-1' | |
- task: 'sinatra' | |
appraisal: 'sinatra-2' | |
- task: 'sinatra' | |
appraisal: 'sinatra-3' | |
- task: 'sinatra' | |
appraisal: 'sinatra-4' | |
- task: 'redis' | |
appraisal: 'redis-3' | |
- task: 'redis' | |
appraisal: 'redis-4' | |
- task: 'redis' | |
appraisal: 'redis-5' | |
- task: 'appsec:rack' | |
appraisal: 'rack-1' | |
- task: 'appsec:rack' | |
appraisal: 'rack-2' | |
- task: 'appsec:rack' | |
appraisal: 'rack-3' | |
- task: 'appsec:sinatra' | |
appraisal: 'sinatra-2' | |
- task: 'appsec:sinatra' | |
appraisal: 'sinatra-3' | |
- task: 'appsec:sinatra' | |
appraisal: 'sinatra-4' | |
- task: 'appsec:devise' | |
- task: 'appsec:rails' | |
appraisal: 'rails4-mysql2' | |
- task: 'appsec:rails' | |
appraisal: 'rails5-mysql2' | |
- task: 'appsec:rails' | |
appraisal: 'rails6-mysql2' | |
- task: 'appsec:rails' | |
appraisal: 'rails61-mysql2' | |
env: | |
SKIP_SIMPLECOV: 1 | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: false | |
DD_REMOTE_CONFIGURATION_ENABLED: false | |
container: | |
image: "ghcr.io/datadog/images-rb/engines/${{ matrix.engine.name }}:${{ matrix.engine.version }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Bundle install | |
run: bundle install | |
- name: Appraisal install | |
id: appraisal | |
if: ${{ matrix.spec.appraisal }} | |
run: | | |
BUNDLE_GEMFILE="gemfiles/${{ matrix.engine.name }}_${{ matrix.engine.version }}_$(echo ${{ matrix.spec.appraisal }} | tr '-' '_').gemfile" | |
echo "BUNDLE_GEMFILE=${BUNDLE_GEMFILE}" >> $GITHUB_OUTPUT | |
export BUNDLE_GEMFILE | |
bundle install | |
- name: Run the test | |
run: | | |
if [[ -n "${{ steps.appraisal.outputs.BUNDLE_GEMFILE }}" ]]; then | |
BUNDLE_GEMFILE="${{ steps.appraisal.outputs.BUNDLE_GEMFILE }}" | |
export BUNDLE_GEMFILE | |
fi | |
bundle exec rake spec:${{ matrix.spec.task }} |