parseAndValidatePulumiVersion function

PulumiVersion? parseAndValidatePulumiVersion(
  1. PulumiVersion minimumVersion,
  2. String currentVersion,
  3. bool optOut
)

Parses and validates currentVersion against minimumVersion.

Implementation

PulumiVersion? parseAndValidatePulumiVersion(
  PulumiVersion minimumVersion,
  String currentVersion,
  bool optOut,
) {
  final version = PulumiVersion.tryParse(currentVersion);
  if (optOut) {
    return version;
  }

  if (version == null) {
    throw const AutomationInvalidVersionException(
      'Could not parse the Pulumi CLI version. This is probably an internal '
      'error. If you are sure you have the correct version, set '
      'PULUMI_AUTOMATION_API_SKIP_VERSION_CHECK=true.',
    );
  }

  if (minimumVersion.major < version.major) {
    throw AutomationInvalidVersionException(
      'Major version mismatch. You are using Pulumi CLI version '
      '$currentVersion with Automation SDK v${minimumVersion.major}. Please '
      'update the SDK.',
    );
  }

  if (minimumVersion.compareTo(version) > 0) {
    throw AutomationInvalidVersionException(
      'Minimum version requirement failed. The minimum CLI version requirement '
      'is $minimumVersion, your current CLI version is $currentVersion. '
      'Please update the Pulumi CLI.',
    );
  }

  return version;
}