This repository contains a GitHub Actions workflow designed to test Ruby applications across multiple Ruby versions and startup configurations. It uses Docker containers to create isolated testing environments and includes crash reporting capabilities.
The workflow, named "Vaccine", automatically tests your Ruby application against multiple Ruby versions (from 1.8 to 3.4) with different startup commands. It uses Datadog's catadog mock server for trace collection and includes crash reporting functionality.
- Supports multiple Ruby versions (1.8 through 3.4)
- Tests various Rails startup commands
- Includes crash tracking and reporting
- Automated trace collection using Datadog's mock server
- Slack notifications for scheduled runs
The workflow runs on:
- Push events
- Daily schedule (7:00 UTC)
- Manual dispatch with optional commit SHA specification
The workflow tests the following combinations:
- Ruby versions: 1.8, 1.9, 2.0-2.7, 3.0-3.4
- Startup commands:
rails sbin/rails sbundle exec rails sruby hello.rb(for older Ruby versions)
DD_TRACE_DEBUG: Enabled for detailed tracing outputDD_INSTRUMENTATION_TELEMETRY_ENABLED: Disabled in test environment to avoid noise.DD_AGENT_HOST: Set to localhostDD_TRACE_AGENT_PORT: Set to 8128DD_CRASHTRACKING_ENABLED: Enabled for crash reporting
Crash report validation is enabled for Ruby versions:
- 2.7
- 3.0
- 3.1
- 3.2
- 3.3
You can manually trigger the workflow through GitHub Actions UI with these parameters:
commit_sha: Specific commit to test (defaults to 'latest_snapshot')
To run the tests locally, ensure you have:
- Docker installed
- Ruby development environment
- Access to GitHub container registry for
catadoganddd-lib-ruby-init
.
├── .github/workflows/
│ └── vaccine.yml
├── src/
│ └── ruby/
│ └── [version]/
│ └── Dockerfile
└── records/
When contributing, ensure your changes:
- Maintain compatibility across all supported Ruby versions
- Include appropriate Dockerfile updates if needed
- Update test cases as necessary
