Skip to content

Add full inlined matrix #3

Add full inlined matrix

Add full inlined matrix #3

Workflow file for this run

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 }}