ReleaseCommand constructor
ReleaseCommand(
- TerminalOutput _output, {
- ReleaseManager? manager,
- ReleaseMetadataManager? metadataManager,
- ReleaseRecoveryManager? recoveryManager,
- GitClient? gitClient,
Implementation
ReleaseCommand(
this._output, {
ReleaseManager? manager,
ReleaseMetadataManager? metadataManager,
ReleaseRecoveryManager? recoveryManager,
GitClient? gitClient,
}) : _manager = manager ?? ReleaseManager(output: _output),
_metadataManager = metadataManager ?? const ReleaseMetadataManager(),
_recoveryManager = recoveryManager ??
ReleaseRecoveryManager(
output: _output,
gitClient: gitClient ?? const GitClient(),
),
_argParser = ArgParser() {
_argParser.addOption(
'mode',
abbr: 'm',
help: 'The release mode to execute (normal, shorebird).',
defaultsTo: 'normal',
);
_argParser.addOption(
'path',
abbr: 'p',
help: 'Target Flutter project directory path.',
defaultsTo: '.',
);
_argParser.addFlag(
'patch',
help: 'Increment patch version component (e.g. 1.8.2 -> 1.8.3).',
negatable: false,
);
_argParser.addFlag(
'minor',
help: 'Increment minor version component (e.g. 1.8.2 -> 1.9.0).',
negatable: false,
);
_argParser.addFlag(
'major',
help: 'Increment major version component (e.g. 1.8.2 -> 2.0.0).',
negatable: false,
);
_argParser.addOption(
'version',
help: 'Explicit target version name (e.g. 2.0.0).',
);
_argParser.addOption(
'build-number',
help: 'Explicit target build number (e.g. 43).',
);
_argParser.addOption(
'platform',
help: 'Target build platform (android, ios, all).',
defaultsTo: 'android',
allowed: ['android', 'ios', 'all'],
);
_argParser.addOption(
'format',
help: 'Artifact format (appbundle/aab, apk, ipa).',
allowed: ['appbundle', 'aab', 'apk', 'ipa'],
);
_argParser.addFlag(
'deploy',
help:
'Automatically deploy built artifacts to app stores via Fastlane after build.',
negatable: false,
);
_argParser.addOption(
'lane',
help: 'Fastlane lane name for deployment (e.g. internal, testflight).',
);
_argParser.addFlag(
'ci',
help: 'Indicate execution in CI environment mode.',
negatable: false,
);
_argParser.addFlag(
'tag',
help: 'Automatically create a Git release tag (e.g. v1.8.3).',
negatable: false,
);
_argParser.addOption(
'tag-prefix',
help: 'Prefix for created Git release tag.',
defaultsTo: 'v',
);
_argParser.addOption(
'environment',
abbr: 'e',
help: 'Target environment (e.g. production, staging, development).',
);
_argParser.addOption(
'env',
help: 'Alias for --environment.',
);
_argParser.addOption(
'flavor',
help: 'Target build flavor (e.g. production).',
);
_argParser.addMultiOption(
'dart-define',
help: 'Additional key=value dart-defines to pass during compilation.',
);
_argParser.addFlag(
'allow-dirty',
help: 'Allow uncommitted git working tree changes during release.',
negatable: false,
);
_argParser.addFlag(
'dry-run',
help:
'Preview release execution plan without performing destructive operations.',
negatable: false,
);
}