Random batch #195
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
# Please do NOT manually edit this file. | |
# This file is generated by 'bundle exec rake github:actions:test_template' | |
--- | |
name: Unit Tests | |
'on': | |
push: | |
branches: | |
- master | |
- poc/** | |
schedule: | |
- cron: 0 7 * * * | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: "${{ github.ref != 'refs/heads/master' }}" | |
jobs: | |
batch-ruby-34: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-3.4 | |
outputs: | |
ruby-34-batches: "${{ steps.set-batches.outputs.ruby-34-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:3.4 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-34-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-34-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-34-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-34: | |
needs: | |
- batch-ruby-34 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-3.4[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-34.outputs.ruby-34-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:3.4 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-34-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-34-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-33: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-3.3 | |
outputs: | |
ruby-33-batches: "${{ steps.set-batches.outputs.ruby-33-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:3.3 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-33-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-33-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-33-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-33: | |
needs: | |
- batch-ruby-33 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-3.3[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-33.outputs.ruby-33-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:3.3 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-33-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-33-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-32: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-3.2 | |
outputs: | |
ruby-32-batches: "${{ steps.set-batches.outputs.ruby-32-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:3.2 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-32-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-32-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-32-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-32: | |
needs: | |
- batch-ruby-32 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-3.2[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-32.outputs.ruby-32-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:3.2 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-32-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-32-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-31: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-3.1 | |
outputs: | |
ruby-31-batches: "${{ steps.set-batches.outputs.ruby-31-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:3.1 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-31-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-31-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-31-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-31: | |
needs: | |
- batch-ruby-31 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-3.1[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-31.outputs.ruby-31-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:3.1 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-31-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-31-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-30: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-3.0 | |
outputs: | |
ruby-30-batches: "${{ steps.set-batches.outputs.ruby-30-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:3.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-30-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-30-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-30-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-30: | |
needs: | |
- batch-ruby-30 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-3.0[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-30.outputs.ruby-30-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:3.0 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-30-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-30-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-27: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-2.7 | |
outputs: | |
ruby-27-batches: "${{ steps.set-batches.outputs.ruby-27-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:2.7 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-27-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-27-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-27-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-27: | |
needs: | |
- batch-ruby-27 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-2.7[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-27.outputs.ruby-27-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:2.7 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-27-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-27-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-26: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-2.6 | |
outputs: | |
ruby-26-batches: "${{ steps.set-batches.outputs.ruby-26-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:2.6 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-26-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-26-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-26-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-26: | |
needs: | |
- batch-ruby-26 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-2.6[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-26.outputs.ruby-26-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:2.6 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-26-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-26-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-ruby-25: | |
runs-on: ubuntu-24.04 | |
name: Batch ruby-2.5 | |
outputs: | |
ruby-25-batches: "${{ steps.set-batches.outputs.ruby-25-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/ruby:2.5 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-ruby-25-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "ruby-25-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-ruby-25-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-ruby-25: | |
needs: | |
- batch-ruby-25 | |
runs-on: ubuntu-24.04 | |
name: Build & Test ruby-2.5[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-ruby-25.outputs.ruby-25-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/ruby:2.5 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-ruby-25-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-ruby-25-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-jruby-94: | |
runs-on: ubuntu-24.04 | |
name: Batch jruby-9.4 | |
outputs: | |
jruby-94-batches: "${{ steps.set-batches.outputs.jruby-94-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/jruby:9.4 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-jruby-94-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "jruby-94-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-jruby-94-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-jruby-94: | |
needs: | |
- batch-jruby-94 | |
runs-on: ubuntu-24.04 | |
name: Build & Test jruby-9.4[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-jruby-94.outputs.jruby-94-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/jruby:9.4 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-jruby-94-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-jruby-94-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-jruby-93: | |
runs-on: ubuntu-24.04 | |
name: Batch jruby-9.3 | |
outputs: | |
jruby-93-batches: "${{ steps.set-batches.outputs.jruby-93-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/jruby:9.3 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-jruby-93-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "jruby-93-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-jruby-93-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-jruby-93: | |
needs: | |
- batch-jruby-93 | |
runs-on: ubuntu-24.04 | |
name: Build & Test jruby-9.3[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-jruby-93.outputs.jruby-93-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/jruby:9.3 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-jruby-93-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-jruby-93-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
batch-jruby-92: | |
runs-on: ubuntu-24.04 | |
name: Batch jruby-9.2 | |
outputs: | |
jruby-92-batches: "${{ steps.set-batches.outputs.jruby-92-batches }}" | |
container: ghcr.io/datadog/images-rb/engines/jruby:9.2 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: bundle lock | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lockfile-jruby-92-${{ github.run_id }} | |
path: "*.lock" | |
- run: bundle install | |
- id: set-batches | |
run: | | |
batches_json=$(bundle exec rake github:generate_batches) | |
echo "$batches_json" | ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))' | |
echo "jruby-92-batches=$batches_json" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bundle-jruby-92-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
build-test-jruby-92: | |
needs: | |
- batch-jruby-92 | |
runs-on: ubuntu-24.04 | |
name: Build & Test jruby-9.2[${{ matrix.batch }}] | |
env: | |
BATCHED_TASKS: "${{ toJSON(matrix.tasks) }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: "${{ fromJson(needs.batch-jruby-92.outputs.jruby-92-batches).include }}" | |
container: | |
image: ghcr.io/datadog/images-rb/engines/jruby:9.2 | |
env: | |
DD_INSTRUMENTATION_TELEMETRY_ENABLED: 'false' | |
DD_REMOTE_CONFIGURATION_ENABLED: 'false' | |
TEST_POSTGRES_HOST: postgres | |
TEST_REDIS_HOST: redis | |
TEST_ELASTICSEARCH_HOST: elasticsearch | |
TEST_MEMCACHED_HOST: memcached | |
TEST_MONGODB_HOST: mongodb | |
TEST_MYSQL_HOST: mysql | |
TEST_OPENSEARCH_HOST: opensearch | |
TEST_OPENSEARCH_PORT: '9200' | |
TEST_PRESTO_HOST: presto | |
DD_AGENT_HOST: agent | |
DD_TRACE_AGENT_PORT: '9126' | |
DATADOG_GEM_CI: 'true' | |
TEST_DATADOG_INTEGRATION: '1' | |
services: | |
postgres: | |
image: ghcr.io/datadog/images-rb/services/postgres:9.6 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_DB: postgres | |
redis: | |
image: ghcr.io/datadog/images-rb/services/redis:6.2 | |
elasticsearch: | |
image: ghcr.io/datadog/images-rb/services/elasticsearch:8.1.3 | |
env: | |
discovery.type: single-node | |
xpack.security.enabled: 'false' | |
ES_JAVA_OPTS: "-Xms750m -Xmx750m" | |
memcached: | |
image: ghcr.io/datadog/images-rb/services/memcached:1.5-alpine | |
mongodb: | |
image: ghcr.io/datadog/images-rb/services/mongo:3.6 | |
opensearch: | |
image: ghcr.io/datadog/images-rb/services/opensearchproject/opensearch:2.8.0 | |
env: | |
discovery.type: single-node | |
DISABLE_SECURITY_PLUGIN: 'true' | |
DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI: 'true' | |
cluster.routing.allocation.disk.watermark.low: 3gb | |
cluster.routing.allocation.disk.watermark.high: 2gb | |
cluster.routing.allocation.disk.watermark.flood_stage: 1gb | |
cluster.routing.allocation.disk.threshold_enabled: 'false' | |
presto: | |
image: ghcr.io/datadog/images-rb/services/starburstdata/presto:332-e.9 | |
mysql: | |
image: ghcr.io/datadog/images-rb/services/mysql:8.0 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_PASSWORD: mysql | |
MYSQL_USER: mysql | |
agent: | |
image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.18.0 | |
env: | |
LOG_LEVEL: DEBUG | |
TRACE_LANGUAGE: ruby | |
PORT: '9126' | |
DD_POOL_TRACE_CHECK_FAILURES: 'true' | |
DD_DISABLE_ERROR_RESPONSES: 'true' | |
ENABLED_CHECKS: trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure Git | |
run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: lockfile-jruby-92-${{ github.run_id }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bundle-jruby-92-${{ github.run_id }} | |
path: "/usr/local/bundle" | |
- run: bundle check | |
- run: bundle exec rake github:run_batch_build | |
- run: bundle exec rake github:run_batch_tests | |
- if: "${{ failure() && env.RUNNER_DEBUG == '1' }}" | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
aggregate: | |
runs-on: ubuntu-24.04 | |
needs: | |
- build-test-ruby-34 | |
- build-test-ruby-33 | |
- build-test-ruby-32 | |
- build-test-ruby-31 | |
- build-test-ruby-30 | |
- build-test-ruby-27 | |
- build-test-ruby-26 | |
- build-test-ruby-25 | |
- build-test-jruby-94 | |
- build-test-jruby-93 | |
- build-test-jruby-92 | |
steps: | |
- run: echo "DONE!" |