You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 04c2332
Browse filesBrowse the repository at this point in the historyBrowse files
fix: Configure LocalStack as GitHub Actions service for AWS integration tests
- Add LocalStack service container to Release-CI workflow
- Configure health checks with 30 retries and 30s start period
- Add verification step to ensure LocalStack is ready before tests
- Update step numbering after adding LocalStack verification
- Addresses timeout issues in GitHub Actions CI environment
Related to bugfix spec: github-actions-localstack-timeout-fix
-**Extended Timeouts** - Uses 90-second health check timeout in CI (vs 30 seconds locally) to accommodate slower container initialization
635
-
-**Enhanced Retry Logic** - Increases retry attempts (20 vs 15) and delays (3 seconds vs 2 seconds) for CI environments
636
-
-**External Instance Detection** - 10-second timeout (vs 3 seconds locally) to reliably detect pre-started LocalStack service containers
643
+
-**Enhanced Retry Logic** - Increases retry attempts (30 vs 15) and delays (3 seconds vs 2 seconds) for CI environments
644
+
-**External Instance Detection** - 10-second timeout (vs 3 seconds locally) with 3 retry attempts to reliably detect pre-started LocalStack service containers
645
+
-**Lenient Detection** - Accepts HTTP 200 from health endpoint even if services aren't fully initialized, deferring full readiness validation to main wait loop
637
646
638
647
**Container Sharing:**
639
648
-**xUnit Collection Fixtures** - `AwsIntegrationTestCollection` enforces shared `LocalStackTestFixture` across all test classes
@@ -645,6 +654,35 @@ The test infrastructure includes specific optimizations for GitHub Actions CI en
645
654
-`LocalStackConfiguration.IsCI` - Property that detects GitHub Actions environment
646
655
-`LocalStackManager.WaitForServicesAsync()` - Adaptive retry logic based on environment detection
647
656
657
+
**GitHub Actions Workflow Configuration:**
658
+
659
+
The Release-CI workflow includes LocalStack as a service container:
- Health checks ensure services are ready before tests run
682
+
- Automatic cleanup after job completion
683
+
- No manual container management required in test code
684
+
- Consistent environment across all CI runs
685
+
648
686
### Reporting and Analysis
649
687
- **Comprehensive Reports** - Detailed test results with metrics and analysis
650
688
- **Performance Trends** - Historical performance tracking and regression detection
@@ -664,6 +702,29 @@ The `AwsResourceManager` provides comprehensive automated resource lifecycle man
664
702
- **Test Isolation** - Unique naming prevents conflicts in parallel test execution
665
703
666
704
### LocalStack Manager (Implemented)
705
+
The `LocalStackManager` provides comprehensive container lifecycle management for AWS service emulation with enhanced features:
706
+
707
+
- **Smart Container Detection** - Automatically detects and reuses existing LocalStack instances (e.g., in CI/CD environments) to avoid redundant container creation
708
+
- **Adaptive Timeout Configuration** - Automatically adjusts health check timeouts based on environment (90 seconds for CI, 30 seconds for local development)
709
+
- **Enhanced External Instance Detection** - Accepts HTTP 200 responses from LocalStack health endpoint even if services aren't fully initialized, deferring full service readiness validation to the main wait loop
710
+
- **Retry Logic** - Configurable retry attempts with delays for reliable external instance detection (3 attempts with 2-second delays)
711
+
- **Port Management** - Automatic port conflict detection and resolution
0 commit comments