This GitHub Action provides comprehensive testing coverage for the SeaweedFS
IAM system including STS, policy engine, roles, and S3 API integration.
### Test Coverage:
#### IAM Unit Tests:
- STS service tests (token generation, validation, providers)
- Policy engine tests (evaluation, storage, distribution)
- Integration tests (role management, cross-component)
- S3 API IAM middleware tests
#### S3 IAM Integration Tests (3 test types):
- Basic: Authentication, token validation, basic workflows
- Advanced: Session expiration, multipart uploads, presigned URLs
- Policy Enforcement: IAM policies, bucket policies, contextual rules
#### Keycloak Integration Tests:
- Real OIDC provider integration via Docker Compose
- End-to-end authentication flow with Keycloak
- Claims mapping and role-based access control
- Only runs on master pushes or when Keycloak files change
#### Distributed IAM Tests:
- Cross-instance token validation
- Persistent storage (filer-based stores)
- Configuration consistency across instances
- Only runs on master pushes to avoid PR overhead
#### Performance Tests:
- IAM component benchmarks
- Load testing for authentication flows
- Memory and performance profiling
- Only runs on master pushes
### Workflow Features:
- Path-based triggering (only runs when IAM code changes)
- Matrix strategy for comprehensive coverage
- Proper service startup/shutdown with health checks
- Detailed logging and artifact upload on failures
- Timeout protection and resource cleanup
- Docker Compose integration for complex scenarios
### CI/CD Integration:
- Runs on pull requests for core functionality
- Extended tests on master branch pushes
- Artifact preservation for debugging failed tests
- Efficient concurrency control to prevent conflicts