This directory contains the reusable workflow and demo workflows for ec2-gha, demonstrating various capabilities.
For documentation about the main workflow, runner.yml, see the main README.
demos– run all demo workflows- Core demos
- Parallelization
- Stress testing
- Real-world example: Mamba installation testing
demos – run all demo workflows
Useful regression test, demonstrates and verifies features.
dbg-minimal – configurable debugging instance
workflow_dispatchwith customizable parameters (instance type, AMI, timeouts)- Also callable via
workflow_call(used bycpu-sweep) - Extended debug mode for troubleshooting
- Instance type:
t3.large(default), configurable - Use case: Interactive debugging and testing
gpu-minimal – nvidia-smi "hello world"
- Instance type:
g4dn.xlarge
cpu-sweep – OS/architecture matrix
- Tests 12 combinations across operating systems and architectures
- OS: Ubuntu 22.04/24.04, Debian 11/12, AL2, AL2023
- Architectures: x86 (
t3.*) and ARM (t4g.*) - Calls
dbg-minimalfor each combination - Use case: Cross-platform compatibility testing
gpu-sweep – GPU instance types with PyTorch
- Tests different GPU instance families
- Instance types:
g4dn.xlarge,g5.xlarge,g6.xlarge,g5g.xlarge(ARM64 + GPU) - Uses Deep Learning OSS PyTorch 2.5.1 AMIs
- Activates conda environment and runs PyTorch CUDA tests
- Use case: GPU compatibility and performance testing
instances-mtx – multiple instances for parallel jobs
- Creates configurable number of instances (default: 3)
- Uses matrix strategy to run jobs in parallel
- Each job runs on its own EC2 instance
- Instance type:
t3.medium - Use case: Parallel test execution, distributed builds
runners-mtx – multiple runners on single instance
- Configurable runners per instance (default: 3)
- All runners share the same instance resources
- Demonstrates resource-efficient parallel execution
- Instance type:
t3.xlarge(larger instance for multiple runners) - Use case: Shared environment testing, resource optimization
jobs-split – different job types on separate instances
- Launches 2 instances
- Build job runs on first instance
- Test job runs on second instance
- Demonstrates targeted job placement
- Instance type:
t3.medium - Use case: Pipeline with dedicated instances per stage
test-disk-full – disk-full scenario testing
- Tests runner behavior when disk space is exhausted
- Configurable parameters:
disk_size: Root disk size (0=AMI default,+N=AMI+N GB, e.g.,+2)fill_strategy: How to fill disk (gradual,immediate, orduring-tests)debug: Debug mode (false,true/trace, or number for trace+sleep)max_instance_lifetime: Maximum lifetime before forced shutdown (default: 15 minutes)
- Features tested:
- Heartbeat mechanism for detecting stuck jobs
- Stale job file detection and cleanup
- Worker/Listener process monitoring
- Robust shutdown with multiple fallback methods
- Instance type:
t3.medium(default) - Use case: Verifying robustness in resource-constrained environments
Real-world example: Mamba installation testing
- Tests different versions of
mamba_ssmpackage on GPU instances - Customizes
instance_name:"$repo/$name==${{ inputs.mamba_version }} (#$run)"- Results in descriptive names like
"mamba/install==2.2.5 (#123)" - Makes it easy to identify which version is being tested on each instance
- Results in descriptive names like
- Uses pre-installed PyTorch from DLAMI conda environment
- Use case: Package compatibility testing across versions

