validate method
Validates the configuration before execution.
This method should check that all required configuration values are present and valid for the specific service. Subclasses should override this method to add service-specific validation.
Throws:
- ShorebirdValidationError: If validation fails
- ShorebirdConfigurationError: If configuration is invalid
Implementation
@override
Future<void> validate() async {
logValidation('release service configuration');
// Validate that we have a platform-specific configuration
if (config is! AndroidCommandConfig && config is! IosCommandConfig) {
throw ArgumentError(
'Release service requires AndroidCommandConfig or IosCommandConfig, '
'but got ${config.runtimeType}');
}
// Validate base configuration
config.validate();
// Platform-specific validation
if (config is AndroidCommandConfig) {
_validateAndroidConfig(config as AndroidCommandConfig);
} else if (config is IosCommandConfig) {
_validateIosConfig(config as IosCommandConfig);
}
}