refactor(shorebird_cli): update how command metadata is populated (#2441)
This commit is contained in:
@@ -13,7 +13,6 @@ import 'package:shorebird_cli/src/commands/patch/patch.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
@@ -21,7 +20,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template aar_patcher}
|
||||
@@ -180,23 +178,4 @@ class AarPatcher extends Patcher {
|
||||
'Release version must be specified using --release-version.',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus) async {
|
||||
return CreatePatchMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,15 +14,12 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template android_patcher}
|
||||
@@ -204,23 +201,4 @@ Looked in:
|
||||
artifact.path,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus) async {
|
||||
return CreatePatchMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_artifacts.dart';
|
||||
@@ -25,7 +24,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template ios_framework_patcher}
|
||||
@@ -228,23 +226,15 @@ class IosFrameworkPatcher extends Patcher {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus) async {
|
||||
return CreatePatchMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: lastBuildLinkPercentage,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
}
|
||||
Future<CreatePatchMetadata> updatedCreatePatchMetadata(
|
||||
CreatePatchMetadata metadata,
|
||||
) async =>
|
||||
metadata.copyWith(
|
||||
linkPercentage: lastBuildLinkPercentage,
|
||||
environment: metadata.environment.copyWith(
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
|
||||
Future<void> _runLinker({
|
||||
required File aotSnapshot,
|
||||
|
||||
@@ -21,7 +21,6 @@ import 'package:shorebird_cli/src/executables/executables.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_artifacts.dart';
|
||||
@@ -30,7 +29,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart';
|
||||
|
||||
@@ -339,23 +337,15 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
}
|
||||
|
||||
@override
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus) async {
|
||||
return CreatePatchMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: lastBuildLinkPercentage,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
}
|
||||
Future<CreatePatchMetadata> updatedCreatePatchMetadata(
|
||||
CreatePatchMetadata metadata,
|
||||
) async =>
|
||||
metadata.copyWith(
|
||||
linkPercentage: lastBuildLinkPercentage,
|
||||
environment: metadata.environment.copyWith(
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
|
||||
Future<_LinkResult> _runLinker({
|
||||
required File releaseArtifact,
|
||||
|
||||
@@ -17,6 +17,7 @@ import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/formatters/formatters.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_command.dart';
|
||||
@@ -24,6 +25,7 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
typedef ResolvePatcher = Patcher Function(ReleaseType releaseType);
|
||||
@@ -149,6 +151,12 @@ NOTE: this is ${styleBold.wrap('not')} recommended. Asset changes cannot be incl
|
||||
/// The target script, if provided.
|
||||
late String? target = results.findOption('target', argParser: argParser);
|
||||
|
||||
/// Whether to allow changes in assets (--allow-asset-diffs).
|
||||
bool get allowAssetDiffs => results['allow-asset-diffs'] == true;
|
||||
|
||||
/// Whether to allow changes in native code (--allow-native-diffs).
|
||||
bool get allowNativeDiffs => results['allow-native-diffs'] == true;
|
||||
|
||||
bool get isStaging => results['staging'] == true;
|
||||
|
||||
@override
|
||||
@@ -293,10 +301,25 @@ NOTE: this is ${styleBold.wrap('not')} recommended. Asset changes cannot be incl
|
||||
patcher: patcher,
|
||||
patchArtifactBundles: patchArtifactBundles,
|
||||
);
|
||||
|
||||
final baseMetadata = CreatePatchMetadata(
|
||||
releasePlatform: patcher.releaseType.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
await codePushClientWrapper.publishPatch(
|
||||
appId: appId,
|
||||
releaseId: release.id,
|
||||
metadata: await patcher.createPatchMetadata(diffStatus),
|
||||
metadata: await patcher.updatedCreatePatchMetadata(baseMetadata),
|
||||
platform: patcher.releaseType.releasePlatform,
|
||||
track:
|
||||
isStaging ? DeploymentTrack.staging : DeploymentTrack.production,
|
||||
|
||||
@@ -92,9 +92,12 @@ ${iOSLinkPercentageUrl.toLink()}
|
||||
required File releaseArtifact,
|
||||
});
|
||||
|
||||
/// Metadata to attach to the patch when creating it, used for debugging
|
||||
/// and support.
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus);
|
||||
/// Updates the provided metadata to include patcher-specific fields.
|
||||
Future<CreatePatchMetadata> updatedCreatePatchMetadata(
|
||||
CreatePatchMetadata metadata,
|
||||
) async {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/// Whether to allow changes in assets (--allow-asset-diffs).
|
||||
bool get allowAssetDiffs => argResults['allow-asset-diffs'] == true;
|
||||
|
||||
@@ -9,7 +9,6 @@ import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
|
||||
import 'package:shorebird_cli/src/commands/release/releaser.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
@@ -17,7 +16,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template aar_releaser}
|
||||
@@ -144,21 +142,6 @@ class AarReleaser extends Releaser {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> releaseMetadata() async =>
|
||||
UpdateReleaseMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
flutterVersionOverride: argResults['flutter-version'] as String?,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
);
|
||||
|
||||
@override
|
||||
String get postReleaseInstructions {
|
||||
final targetLibraryDirectory = Directory(
|
||||
|
||||
@@ -8,15 +8,12 @@ import 'package:shorebird_cli/src/commands/release/releaser.dart';
|
||||
import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template android_releaser}
|
||||
@@ -188,19 +185,10 @@ Please comment and upvote ${link(uri: Uri.parse('https://github.com/shorebirdtec
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> releaseMetadata() async =>
|
||||
UpdateReleaseMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
flutterVersionOverride: argResults['flutter-version'] as String?,
|
||||
generatedApks: generateApk,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
);
|
||||
Future<UpdateReleaseMetadata> updatedReleaseMetadata(
|
||||
UpdateReleaseMetadata metadata,
|
||||
) async =>
|
||||
metadata.copyWith(generatedApks: generateApk);
|
||||
|
||||
@override
|
||||
String get postReleaseInstructions {
|
||||
|
||||
@@ -12,13 +12,11 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template ios_framework_releaser}
|
||||
@@ -132,6 +130,16 @@ class IosFrameworkReleaser extends Releaser {
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> updatedReleaseMetadata(
|
||||
UpdateReleaseMetadata metadata,
|
||||
) async =>
|
||||
metadata.copyWith(
|
||||
environment: metadata.environment.copyWith(
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
|
||||
@override
|
||||
String get postReleaseInstructions {
|
||||
final relativeFrameworkDirectoryPath = p.relative(releaseDirectory.path);
|
||||
@@ -146,19 +154,4 @@ To do this:
|
||||
Instructions for these steps can be found at https://docs.flutter.dev/add-to-app/ios/project-setup#option-b---embed-frameworks-in-xcode.
|
||||
''';
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> releaseMetadata() async =>
|
||||
UpdateReleaseMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
flutterVersionOverride: argResults['flutter-version'] as String?,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/ios.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_documentation.dart';
|
||||
@@ -22,7 +21,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
|
||||
/// {@template ios_releaser}
|
||||
@@ -198,6 +196,16 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> updatedReleaseMetadata(
|
||||
UpdateReleaseMetadata metadata,
|
||||
) async =>
|
||||
metadata.copyWith(
|
||||
environment: metadata.environment.copyWith(
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
|
||||
@override
|
||||
String get postReleaseInstructions {
|
||||
final relativeArchivePath = p.relative(
|
||||
@@ -227,19 +235,4 @@ ${styleBold.wrap('Make sure to uncheck "Manage Version and Build Number", or els
|
||||
''';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> releaseMetadata() async =>
|
||||
UpdateReleaseMetadata(
|
||||
releasePlatform: releaseType.releasePlatform,
|
||||
flutterVersionOverride: argResults['flutter-version'] as String?,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: await xcodeBuild.version(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:shorebird_cli/src/config/config.dart';
|
||||
import 'package:shorebird_cli/src/extensions/arg_results.dart';
|
||||
import 'package:shorebird_cli/src/extensions/version.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_command.dart';
|
||||
@@ -18,6 +19,7 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart';
|
||||
|
||||
@@ -476,12 +478,23 @@ ${summary.join('\n')}
|
||||
required Release release,
|
||||
required Releaser releaser,
|
||||
}) async {
|
||||
final baseMetadata = UpdateReleaseMetadata(
|
||||
releasePlatform: releaser.releaseType.releasePlatform,
|
||||
flutterVersionOverride: results['flutter-version'] as String?,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: shorebirdEnv.flutterRevision,
|
||||
operatingSystem: platform.operatingSystem,
|
||||
operatingSystemVersion: platform.operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
await codePushClientWrapper.updateReleaseStatus(
|
||||
appId: appId,
|
||||
releaseId: release.id,
|
||||
platform: releaser.releaseType.releasePlatform,
|
||||
status: ReleaseStatus.active,
|
||||
metadata: await releaser.releaseMetadata(),
|
||||
metadata: await releaser.updatedReleaseMetadata(baseMetadata),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,9 +54,12 @@ abstract class Releaser {
|
||||
required String appId,
|
||||
});
|
||||
|
||||
/// Metadata to attach to the release when creating it, used for debugging
|
||||
/// and support.
|
||||
Future<UpdateReleaseMetadata> releaseMetadata();
|
||||
/// Creates a copy of [metadata] with releaser-specific fields updated.
|
||||
Future<UpdateReleaseMetadata> updatedReleaseMetadata(
|
||||
UpdateReleaseMetadata metadata,
|
||||
) async {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/// Instructions explaining next steps after running `shorebird release`. This
|
||||
/// could include how to upload the generated artifact to a store and how to
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:args/args.dart';
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:platform/platform.dart';
|
||||
import 'package:scoped_deps/scoped_deps.dart';
|
||||
import 'package:shorebird_cli/src/archive_analysis/android_archive_differ.dart';
|
||||
import 'package:shorebird_cli/src/artifact_builder.dart';
|
||||
@@ -41,7 +40,6 @@ void main() {
|
||||
late Directory projectRoot;
|
||||
late ShorebirdLogger logger;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdFlutter shorebirdFlutter;
|
||||
@@ -98,7 +96,6 @@ void main() {
|
||||
artifactManager = MockArtifactManager();
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -511,54 +508,31 @@ void main() {
|
||||
});
|
||||
});
|
||||
|
||||
group('createPatchMetadata', () {
|
||||
group('updatedCreatePatchMetadata', () {
|
||||
const allowAssetDiffs = false;
|
||||
const allowNativeDiffs = true;
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'Mac OS X';
|
||||
const operatingSystemVersion = '10.15.7';
|
||||
|
||||
setUp(() {
|
||||
when(() => argResults['allow-asset-diffs']).thenReturn(allowAssetDiffs);
|
||||
when(
|
||||
() => argResults['allow-native-diffs'],
|
||||
).thenReturn(allowNativeDiffs);
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
});
|
||||
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
),
|
||||
),
|
||||
runWithOverrides(() => patcher.updatedCreatePatchMetadata(metadata)),
|
||||
completion(metadata),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -5,7 +5,6 @@ import 'package:crypto/crypto.dart';
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:platform/platform.dart';
|
||||
import 'package:scoped_deps/scoped_deps.dart';
|
||||
import 'package:shorebird_cli/src/archive_analysis/android_archive_differ.dart';
|
||||
import 'package:shorebird_cli/src/artifact_builder.dart';
|
||||
@@ -18,7 +17,6 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/engine_config.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
@@ -43,7 +41,6 @@ void main() {
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late CodeSigner codeSigner;
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late ShorebirdLogger logger;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
@@ -97,7 +94,6 @@ void main() {
|
||||
engineConfigRef.overrideWith(() => const EngineConfig.empty()),
|
||||
loggerRef.overrideWith(() => logger),
|
||||
patchDiffCheckerRef.overrideWith(() => patchDiffChecker),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
shorebirdFlutterRef.overrideWith(() => shorebirdFlutter),
|
||||
@@ -125,7 +121,6 @@ void main() {
|
||||
codeSigner = MockCodeSigner();
|
||||
doctor = MockDoctor();
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -630,54 +625,31 @@ Looked in:
|
||||
});
|
||||
});
|
||||
|
||||
group('createPatchMetadata', () {
|
||||
group('updatedCreatePatchMetadata', () {
|
||||
const allowAssetDiffs = false;
|
||||
const allowNativeDiffs = true;
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'Mac OS X';
|
||||
const operatingSystemVersion = '10.15.7';
|
||||
|
||||
setUp(() {
|
||||
when(() => argResults['allow-asset-diffs']).thenReturn(allowAssetDiffs);
|
||||
when(
|
||||
() => argResults['allow-native-diffs'],
|
||||
).thenReturn(allowNativeDiffs);
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
});
|
||||
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
),
|
||||
),
|
||||
runWithOverrides(() => patcher.updatedCreatePatchMetadata(metadata)),
|
||||
completion(metadata),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -19,7 +19,6 @@ import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_artifacts.dart';
|
||||
@@ -52,7 +51,6 @@ void main() {
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdArtifacts shorebirdArtifacts;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
@@ -76,7 +74,6 @@ void main() {
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
patchDiffCheckerRef.overrideWith(() => patchDiffChecker),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdArtifactsRef.overrideWith(() => shorebirdArtifacts),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
@@ -105,7 +102,6 @@ void main() {
|
||||
engineConfig = MockEngineConfig();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -819,7 +815,7 @@ void main() {
|
||||
});
|
||||
});
|
||||
|
||||
group('createPatchMetadata', () {
|
||||
group('updatedCreatePatchMetadata', () {
|
||||
const allowAssetDiffs = false;
|
||||
const allowNativeDiffs = true;
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
@@ -828,17 +824,6 @@ void main() {
|
||||
const xcodeVersion = '11';
|
||||
|
||||
setUp(() {
|
||||
when(
|
||||
() => argResults['allow-asset-diffs'],
|
||||
).thenReturn(allowAssetDiffs);
|
||||
when(
|
||||
() => argResults['allow-native-diffs'],
|
||||
).thenReturn(allowNativeDiffs);
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
when(
|
||||
() => xcodeBuild.version(),
|
||||
).thenAnswer((_) async => xcodeVersion);
|
||||
@@ -846,26 +831,32 @@ void main() {
|
||||
|
||||
group('when linker is not enabled', () {
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
hasAssetChanges: false,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
runWithOverrides(
|
||||
() => patcher.updatedCreatePatchMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
hasNativeChanges: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
@@ -886,26 +877,33 @@ void main() {
|
||||
});
|
||||
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
runWithOverrides(
|
||||
() => patcher.updatedCreatePatchMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
hasNativeChanges: false,
|
||||
linkPercentage: linkPercentage,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
|
||||
@@ -23,7 +23,6 @@ import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_artifacts.dart';
|
||||
@@ -59,7 +58,6 @@ void main() {
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdArtifacts shorebirdArtifacts;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
@@ -86,7 +84,6 @@ void main() {
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
patchDiffCheckerRef.overrideWith(() => patchDiffChecker),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdArtifactsRef.overrideWith(() => shorebirdArtifacts),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
@@ -118,7 +115,6 @@ void main() {
|
||||
ios = MockIos();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -1584,7 +1580,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
});
|
||||
});
|
||||
|
||||
group('createPatchMetadata', () {
|
||||
group('updatedCreatePatchMetadata', () {
|
||||
const allowAssetDiffs = false;
|
||||
const allowNativeDiffs = true;
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
@@ -1593,17 +1589,6 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
const xcodeVersion = '11';
|
||||
|
||||
setUp(() {
|
||||
when(
|
||||
() => argResults['allow-asset-diffs'],
|
||||
).thenReturn(allowAssetDiffs);
|
||||
when(
|
||||
() => argResults['allow-native-diffs'],
|
||||
).thenReturn(allowNativeDiffs);
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
when(
|
||||
() => xcodeBuild.version(),
|
||||
).thenAnswer((_) async => xcodeVersion);
|
||||
@@ -1611,26 +1596,32 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
|
||||
group('when linker is not enabled', () {
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: false,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
runWithOverrides(
|
||||
() => patcher.updatedCreatePatchMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
linkPercentage: null,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
hasNativeChanges: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
@@ -1651,26 +1642,33 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''',
|
||||
});
|
||||
|
||||
test('returns correct metadata', () async {
|
||||
const diffStatus = DiffStatus(
|
||||
hasAssetChanges: false,
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
|
||||
final metadata = await runWithOverrides(
|
||||
() => patcher.createPatchMetadata(diffStatus),
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
metadata,
|
||||
equals(
|
||||
CreatePatchMetadata(
|
||||
runWithOverrides(
|
||||
() => patcher.updatedCreatePatchMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: allowAssetDiffs,
|
||||
hasAssetChanges: diffStatus.hasAssetChanges,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: allowNativeDiffs,
|
||||
hasNativeChanges: diffStatus.hasNativeChanges,
|
||||
hasNativeChanges: false,
|
||||
linkPercentage: linkPercentage,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
|
||||
@@ -49,6 +49,10 @@ void main() {
|
||||
),
|
||||
};
|
||||
const shorebirdYaml = ShorebirdYaml(appId: appId);
|
||||
const diffStatus = DiffStatus(
|
||||
hasAssetChanges: false,
|
||||
hasNativeChanges: false,
|
||||
);
|
||||
final patchMetadata = CreatePatchMetadata.forTest();
|
||||
|
||||
final appMetadata = AppMetadata(
|
||||
@@ -241,7 +245,7 @@ void main() {
|
||||
),
|
||||
).thenAnswer((_) async => patchArtifactBundles);
|
||||
when(
|
||||
() => patcher.createPatchMetadata(any()),
|
||||
() => patcher.updatedCreatePatchMetadata(any()),
|
||||
).thenAnswer((_) async => patchMetadata);
|
||||
when(
|
||||
() => patcher.assertUnpatchableDiffs(
|
||||
@@ -249,7 +253,7 @@ void main() {
|
||||
releaseArchive: any(named: 'releaseArchive'),
|
||||
patchArchive: any(named: 'patchArchive'),
|
||||
),
|
||||
).thenAnswer((_) async => FakeDiffStatus());
|
||||
).thenAnswer((_) async => diffStatus);
|
||||
|
||||
when(() => shorebirdEnv.getShorebirdYaml()).thenReturn(shorebirdYaml);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
@@ -596,7 +600,7 @@ void main() {
|
||||
releaseArtifact: any(named: 'releaseArtifact'),
|
||||
),
|
||||
() => logger.confirm('Would you like to continue?'),
|
||||
() => patcher.createPatchMetadata(any()),
|
||||
() => patcher.updatedCreatePatchMetadata(any()),
|
||||
() => codePushClientWrapper.publishPatch(
|
||||
appId: appId,
|
||||
releaseId: release.id,
|
||||
|
||||
@@ -193,7 +193,9 @@ class _TestPatcher extends Patcher {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<CreatePatchMetadata> createPatchMetadata(DiffStatus diffStatus) {
|
||||
Future<CreatePatchMetadata> updatedCreatePatchMetadata(
|
||||
CreatePatchMetadata metadata,
|
||||
) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:args/args.dart';
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:platform/platform.dart';
|
||||
import 'package:scoped_deps/scoped_deps.dart';
|
||||
import 'package:shorebird_cli/src/artifact_builder.dart';
|
||||
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
|
||||
@@ -12,7 +11,6 @@ import 'package:shorebird_cli/src/commands/release/aar_releaser.dart';
|
||||
import 'package:shorebird_cli/src/engine_config.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
@@ -20,7 +18,6 @@ import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_process.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_validator.dart';
|
||||
import 'package:shorebird_cli/src/version.dart';
|
||||
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
@@ -35,7 +32,6 @@ void main() {
|
||||
late ArgResults argResults;
|
||||
late ArtifactBuilder artifactBuilder;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
@@ -56,7 +52,6 @@ void main() {
|
||||
engineConfigRef.overrideWith(() => const EngineConfig.empty()),
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
shorebirdFlutterRef.overrideWith(() => shorebirdFlutter),
|
||||
@@ -77,7 +72,6 @@ void main() {
|
||||
artifactBuilder = MockArtifactBuilder();
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -424,36 +418,12 @@ void main() {
|
||||
});
|
||||
});
|
||||
|
||||
group('releaseMetadata', () {
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'macos';
|
||||
const operatingSystemVersion = '11.0.0';
|
||||
|
||||
setUp(() {
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
});
|
||||
|
||||
group('updatedReleaseMetadata', () {
|
||||
test('returns expected metadata', () async {
|
||||
final metadata = UpdateReleaseMetadata.forTest();
|
||||
expect(
|
||||
await runWithOverrides(aarReleaser.releaseMetadata),
|
||||
equals(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
),
|
||||
),
|
||||
),
|
||||
aarReleaser.updatedReleaseMetadata(metadata),
|
||||
completion(metadata),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:args/args.dart';
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:platform/platform.dart';
|
||||
import 'package:scoped_deps/scoped_deps.dart';
|
||||
import 'package:shorebird_cli/src/artifact_builder.dart';
|
||||
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
|
||||
@@ -15,7 +14,6 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/engine_config.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_android_artifacts.dart';
|
||||
@@ -38,7 +36,6 @@ void main() {
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late CodeSigner codeSigner;
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
@@ -62,7 +59,6 @@ void main() {
|
||||
engineConfigRef.overrideWith(() => const EngineConfig.empty()),
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
shorebirdFlutterRef.overrideWith(() => shorebirdFlutter),
|
||||
@@ -86,7 +82,6 @@ void main() {
|
||||
codeSigner = MockCodeSigner();
|
||||
doctor = MockDoctor();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -647,18 +642,20 @@ To change the version of this release, change your app's version in your pubspec
|
||||
});
|
||||
});
|
||||
|
||||
group('releaseMetadata', () {
|
||||
group('updatedReleaseMetadata', () {
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'macos';
|
||||
const operatingSystemVersion = '11.0.0';
|
||||
|
||||
setUp(() {
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
});
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
group('when an apk is generated', () {
|
||||
setUp(() {
|
||||
@@ -667,17 +664,20 @@ To change the version of this release, change your app's version in your pubspec
|
||||
|
||||
test('returns expected metadata', () async {
|
||||
expect(
|
||||
await runWithOverrides(() => androidReleaser.releaseMetadata()),
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
runWithOverrides(
|
||||
() => androidReleaser.updatedReleaseMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -691,17 +691,20 @@ To change the version of this release, change your app's version in your pubspec
|
||||
|
||||
test('returns expected metadata', () async {
|
||||
expect(
|
||||
await runWithOverrides(() => androidReleaser.releaseMetadata()),
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: null,
|
||||
runWithOverrides(
|
||||
() => androidReleaser.updatedReleaseMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -14,7 +14,6 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/executables/executables.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_flutter.dart';
|
||||
@@ -37,7 +36,6 @@ void main() {
|
||||
late ArtifactManager artifactManager;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
@@ -60,7 +58,6 @@ void main() {
|
||||
doctorRef.overrideWith(() => doctor),
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
shorebirdFlutterRef.overrideWith(() => shorebirdFlutter),
|
||||
@@ -82,7 +79,6 @@ void main() {
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
doctor = MockDoctor();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockShorebirdLogger();
|
||||
@@ -388,18 +384,23 @@ void main() {
|
||||
});
|
||||
});
|
||||
|
||||
group('releaseMetadata', () {
|
||||
group('updatedReleaseMetadata', () {
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'macos';
|
||||
const operatingSystemVersion = '11.0.0';
|
||||
const xcodeVersion = '123';
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: null,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
setUp(() {
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
when(
|
||||
() => xcodeBuild.version(),
|
||||
).thenAnswer((_) async => xcodeVersion);
|
||||
@@ -407,12 +408,13 @@ void main() {
|
||||
|
||||
test('returns expected metadata', () async {
|
||||
expect(
|
||||
await runWithOverrides(iosFrameworkReleaser.releaseMetadata),
|
||||
equals(
|
||||
runWithOverrides(
|
||||
() => iosFrameworkReleaser.updatedReleaseMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: null,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
|
||||
@@ -18,7 +18,6 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/executables/xcodebuild.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/operating_system_interface.dart';
|
||||
import 'package:shorebird_cli/src/platform.dart';
|
||||
import 'package:shorebird_cli/src/platform/ios.dart';
|
||||
import 'package:shorebird_cli/src/release_type.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_documentation.dart';
|
||||
@@ -45,7 +44,6 @@ void main() {
|
||||
late CodeSigner codeSigner;
|
||||
late Directory projectRoot;
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdLogger logger;
|
||||
late Ios ios;
|
||||
@@ -70,7 +68,6 @@ void main() {
|
||||
iosRef.overrideWith(() => ios),
|
||||
loggerRef.overrideWith(() => logger),
|
||||
osInterfaceRef.overrideWith(() => operatingSystemInterface),
|
||||
platformRef.overrideWith(() => platform),
|
||||
processRef.overrideWith(() => shorebirdProcess),
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
shorebirdFlutterRef.overrideWith(() => shorebirdFlutter),
|
||||
@@ -93,7 +90,6 @@ void main() {
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
codeSigner = MockCodeSigner();
|
||||
doctor = MockDoctor();
|
||||
platform = MockPlatform();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
progress = MockProgress();
|
||||
@@ -757,22 +753,24 @@ To change the version of this release, change your app's version in your pubspec
|
||||
});
|
||||
});
|
||||
|
||||
group('releaseMetadata', () {
|
||||
group('updatedReleaseMetadata', () {
|
||||
const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b';
|
||||
const operatingSystem = 'macOS';
|
||||
const operatingSystemVersion = '11.0.0';
|
||||
const xcodeVersion = '123';
|
||||
const flutterVersionOverride = '1.2.3';
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: flutterVersionOverride,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
),
|
||||
);
|
||||
|
||||
setUp(() {
|
||||
when(
|
||||
() => argResults['flutter-version'],
|
||||
).thenReturn(flutterVersionOverride);
|
||||
when(() => platform.operatingSystem).thenReturn(operatingSystem);
|
||||
when(
|
||||
() => platform.operatingSystemVersion,
|
||||
).thenReturn(operatingSystemVersion);
|
||||
when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision);
|
||||
when(
|
||||
() => xcodeBuild.version(),
|
||||
).thenAnswer((_) async => xcodeVersion);
|
||||
@@ -780,17 +778,20 @@ To change the version of this release, change your app's version in your pubspec
|
||||
|
||||
test('returns expected metadata', () async {
|
||||
expect(
|
||||
await runWithOverrides(iosReleaser.releaseMetadata),
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: flutterVersionOverride,
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: xcodeVersion,
|
||||
runWithOverrides(
|
||||
() => iosReleaser.updatedReleaseMetadata(metadata),
|
||||
),
|
||||
completion(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: flutterVersionOverride,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision,
|
||||
operatingSystem: operatingSystem,
|
||||
operatingSystemVersion: operatingSystemVersion,
|
||||
shorebirdVersion: packageVersion,
|
||||
xcodeVersion: xcodeVersion,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -81,6 +81,7 @@ void main() {
|
||||
registerFallbackValue(release);
|
||||
registerFallbackValue(ReleasePlatform.android);
|
||||
registerFallbackValue(ReleaseStatus.draft);
|
||||
registerFallbackValue(UpdateReleaseMetadata.forTest());
|
||||
});
|
||||
|
||||
setUp(() {
|
||||
@@ -153,7 +154,7 @@ void main() {
|
||||
).thenReturn(postReleaseInstructions);
|
||||
when(() => releaser.releaseType).thenReturn(ReleaseType.android);
|
||||
when(
|
||||
() => releaser.releaseMetadata(),
|
||||
() => releaser.updatedReleaseMetadata(any()),
|
||||
).thenAnswer((_) async => UpdateReleaseMetadata.forTest());
|
||||
when(() => releaser.requiresReleaseVersionArg).thenReturn(false);
|
||||
|
||||
|
||||
@@ -46,7 +46,10 @@ class FakeReleaser extends Releaser {
|
||||
String get postReleaseInstructions => throw UnimplementedError();
|
||||
|
||||
@override
|
||||
Future<UpdateReleaseMetadata> releaseMetadata() => throw UnimplementedError();
|
||||
Future<UpdateReleaseMetadata> updatedReleaseMetadata(
|
||||
UpdateReleaseMetadata metadata,
|
||||
) =>
|
||||
throw UnimplementedError();
|
||||
|
||||
@override
|
||||
ReleaseType get releaseType => throw UnimplementedError();
|
||||
|
||||
@@ -50,13 +50,11 @@ Future<void> main() async {
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: false,
|
||||
hasNativeChanges: false,
|
||||
linkPercentage: null,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: '<FLUTTER_REVISION>', // e.g. '83305b5088e6'
|
||||
operatingSystem: 'Windows',
|
||||
operatingSystemVersion: '10',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: null,
|
||||
),
|
||||
).toJson(),
|
||||
);
|
||||
|
||||
+19
-1
@@ -21,7 +21,7 @@ class BuildEnvironmentMetadata extends Equatable {
|
||||
required this.shorebirdVersion,
|
||||
required this.operatingSystem,
|
||||
required this.operatingSystemVersion,
|
||||
required this.xcodeVersion,
|
||||
this.xcodeVersion,
|
||||
});
|
||||
|
||||
/// coverage:ignore-start
|
||||
@@ -50,6 +50,24 @@ class BuildEnvironmentMetadata extends Equatable {
|
||||
/// Converts a [BuildEnvironmentMetadata] to a Map<String, dynamic>
|
||||
Map<String, dynamic> toJson() => _$BuildEnvironmentMetadataToJson(this);
|
||||
|
||||
/// Creates a copy of this [BuildEnvironmentMetadata] with the given fields
|
||||
/// replaced by the new values.
|
||||
BuildEnvironmentMetadata copyWith({
|
||||
String? flutterRevision,
|
||||
String? shorebirdVersion,
|
||||
String? operatingSystem,
|
||||
String? operatingSystemVersion,
|
||||
String? xcodeVersion,
|
||||
}) =>
|
||||
BuildEnvironmentMetadata(
|
||||
flutterRevision: flutterRevision ?? this.flutterRevision,
|
||||
shorebirdVersion: shorebirdVersion ?? this.shorebirdVersion,
|
||||
operatingSystem: operatingSystem ?? this.operatingSystem,
|
||||
operatingSystemVersion:
|
||||
operatingSystemVersion ?? this.operatingSystemVersion,
|
||||
xcodeVersion: xcodeVersion ?? this.xcodeVersion,
|
||||
);
|
||||
|
||||
/// The revision of Flutter used to run the command.
|
||||
///
|
||||
/// Reason: often times we want to track things like link percentage
|
||||
|
||||
@@ -23,8 +23,8 @@ class CreatePatchMetadata extends Equatable {
|
||||
required this.hasAssetChanges,
|
||||
required this.usedIgnoreNativeChangesFlag,
|
||||
required this.hasNativeChanges,
|
||||
required this.linkPercentage,
|
||||
required this.environment,
|
||||
this.linkPercentage,
|
||||
});
|
||||
|
||||
// coverage:ignore-start
|
||||
@@ -57,6 +57,29 @@ class CreatePatchMetadata extends Equatable {
|
||||
/// Converts a [CreatePatchMetadata] to a Map<String, dynamic>
|
||||
Map<String, dynamic> toJson() => _$CreatePatchMetadataToJson(this);
|
||||
|
||||
/// Returns a copy of this [CreatePatchMetadata] with the given fields
|
||||
/// replaced by the new values.
|
||||
CreatePatchMetadata copyWith({
|
||||
ReleasePlatform? releasePlatform,
|
||||
bool? usedIgnoreAssetChangesFlag,
|
||||
bool? hasAssetChanges,
|
||||
bool? usedIgnoreNativeChangesFlag,
|
||||
bool? hasNativeChanges,
|
||||
double? linkPercentage,
|
||||
BuildEnvironmentMetadata? environment,
|
||||
}) =>
|
||||
CreatePatchMetadata(
|
||||
releasePlatform: releasePlatform ?? this.releasePlatform,
|
||||
usedIgnoreAssetChangesFlag:
|
||||
usedIgnoreAssetChangesFlag ?? this.usedIgnoreAssetChangesFlag,
|
||||
hasAssetChanges: hasAssetChanges ?? this.hasAssetChanges,
|
||||
usedIgnoreNativeChangesFlag:
|
||||
usedIgnoreNativeChangesFlag ?? this.usedIgnoreNativeChangesFlag,
|
||||
hasNativeChanges: hasNativeChanges ?? this.hasNativeChanges,
|
||||
linkPercentage: linkPercentage ?? this.linkPercentage,
|
||||
environment: environment ?? this.environment,
|
||||
);
|
||||
|
||||
/// The platform for which the patch was created.
|
||||
final ReleasePlatform releasePlatform;
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ class UpdateReleaseMetadata extends Equatable {
|
||||
const UpdateReleaseMetadata({
|
||||
required this.releasePlatform,
|
||||
required this.flutterVersionOverride,
|
||||
required this.generatedApks,
|
||||
required this.environment,
|
||||
this.generatedApks,
|
||||
});
|
||||
|
||||
// coverage:ignore-start
|
||||
@@ -48,6 +48,22 @@ class UpdateReleaseMetadata extends Equatable {
|
||||
/// Converts a [UpdateReleaseMetadata] to a Map<String, dynamic>.
|
||||
Map<String, dynamic> toJson() => _$UpdateReleaseMetadataToJson(this);
|
||||
|
||||
/// Returns a copy of this [UpdateReleaseMetadata] with the given fields
|
||||
/// replaced by the new values.
|
||||
UpdateReleaseMetadata copyWith({
|
||||
ReleasePlatform? releasePlatform,
|
||||
String? flutterVersionOverride,
|
||||
bool? generatedApks,
|
||||
BuildEnvironmentMetadata? environment,
|
||||
}) =>
|
||||
UpdateReleaseMetadata(
|
||||
releasePlatform: releasePlatform ?? this.releasePlatform,
|
||||
flutterVersionOverride:
|
||||
flutterVersionOverride ?? this.flutterVersionOverride,
|
||||
generatedApks: generatedApks ?? this.generatedApks,
|
||||
environment: environment ?? this.environment,
|
||||
);
|
||||
|
||||
/// The platform for which the patch was created.
|
||||
final ReleasePlatform releasePlatform;
|
||||
|
||||
|
||||
+43
@@ -18,6 +18,49 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
group('copyWith', () {
|
||||
test('creates a copy with the same fields', () {
|
||||
const metadata = BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
);
|
||||
|
||||
expect(metadata.copyWith(), equals(metadata));
|
||||
});
|
||||
|
||||
test('returns a new instance with the given fields replaced', () {
|
||||
const metadata = BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
);
|
||||
final newMetadata = metadata.copyWith(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
);
|
||||
expect(
|
||||
newMetadata,
|
||||
equals(
|
||||
const BuildEnvironmentMetadata(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('equatable', () {
|
||||
test('two metadatas with the same properties are equal', () {
|
||||
const metadata = BuildEnvironmentMetadata(
|
||||
|
||||
@@ -25,6 +25,83 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
group('copyWith', () {
|
||||
test('creates a copy with the same fields', () {
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: false,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: false,
|
||||
hasNativeChanges: false,
|
||||
linkPercentage: 99.9,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
),
|
||||
);
|
||||
|
||||
expect(metadata.copyWith(), equals(metadata));
|
||||
});
|
||||
|
||||
test('creates a copy with the given fields replaced', () {
|
||||
const metadata = CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
usedIgnoreAssetChangesFlag: false,
|
||||
hasAssetChanges: false,
|
||||
usedIgnoreNativeChangesFlag: false,
|
||||
hasNativeChanges: false,
|
||||
linkPercentage: 99.9,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
),
|
||||
);
|
||||
|
||||
final newMetadata = metadata.copyWith(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: true,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: true,
|
||||
hasNativeChanges: true,
|
||||
linkPercentage: 99.8,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
newMetadata,
|
||||
equals(
|
||||
const CreatePatchMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
usedIgnoreAssetChangesFlag: true,
|
||||
hasAssetChanges: true,
|
||||
usedIgnoreNativeChangesFlag: true,
|
||||
hasNativeChanges: true,
|
||||
linkPercentage: 99.8,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('equatable', () {
|
||||
test('two metadatas with the same properties are equal', () {
|
||||
const metadata = CreatePatchMetadata(
|
||||
|
||||
+65
@@ -22,6 +22,71 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
group('copyWith', () {
|
||||
test('creates a copy with the same fields', () {
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: '1.2.3',
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
),
|
||||
);
|
||||
|
||||
expect(metadata.copyWith(), equals(metadata));
|
||||
});
|
||||
|
||||
test('creates a copy with the given fields replaced', () {
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.android,
|
||||
flutterVersionOverride: '1.2.3',
|
||||
generatedApks: false,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b',
|
||||
operatingSystem: 'macos',
|
||||
operatingSystemVersion: '1.2.3',
|
||||
shorebirdVersion: '4.5.6',
|
||||
xcodeVersion: '15.0',
|
||||
),
|
||||
);
|
||||
|
||||
final newMetadata = metadata.copyWith(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: '1.2.4',
|
||||
generatedApks: true,
|
||||
environment: const BuildEnvironmentMetadata(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
),
|
||||
);
|
||||
|
||||
expect(
|
||||
newMetadata,
|
||||
equals(
|
||||
const UpdateReleaseMetadata(
|
||||
releasePlatform: ReleasePlatform.ios,
|
||||
flutterVersionOverride: '1.2.4',
|
||||
generatedApks: true,
|
||||
environment: BuildEnvironmentMetadata(
|
||||
flutterRevision: 'asdf',
|
||||
operatingSystem: 'windows',
|
||||
operatingSystemVersion: '11',
|
||||
shorebirdVersion: '1.2.3',
|
||||
xcodeVersion: '14.0',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('equatable', () {
|
||||
test('two metadatas with the same properties are equal', () {
|
||||
const metadata = UpdateReleaseMetadata(
|
||||
|
||||
Reference in New Issue
Block a user