Files
shorebird/packages/shorebird_code_push_client/example/main.dart
T
2023-04-04 04:13:43 +00:00

61 lines
1.7 KiB
Dart

// ignore_for_file: unused_local_variable
import 'package:shorebird_code_push_client/shorebird_code_push_client.dart';
Future<void> main() async {
final client = CodePushClient();
// Download the latest stable engine revision.
final engine = await client.downloadEngine(
revision: '<ENGINE REVISION>', // e.g. '9aa7816315'
);
// List all apps.
final apps = await client.getApps();
// Create a new Shorebird application.
final app = await client.createApp(
displayName: '<DISPLAY NAME>', // e.g. 'Shorebird Example'
);
// Create a channel.
final channel = await client.createChannel(
appId: app.id,
channel: '<CHANNEL>', // e.g. 'stable'
);
// Create a release.
final release = await client.createRelease(
appId: app.id,
version: '<VERSION>', // e.g. '1.0.0'
displayName: '<DISPLAY NAME>', // e.g. 'v1.0.0'
);
// Create a release artifact.
final releaseArtifact = await client.createReleaseArtifact(
releaseId: release.id,
artifactPath: '<PATH TO ARTIFACT>', // e.g. 'libapp.so'
platform: '<PLATFORM>', // e.g. 'android'
arch: '<ARCHITECTURE>', // e.g. 'aarch64'
hash: '<HASH>', // 'sha256 hash of the artifact'
);
// Create a new patch.
final patch = await client.createPatch(releaseId: release.id);
// Create a patch artifact.
final patchArtifact = await client.createPatchArtifact(
patchId: patch.id,
artifactPath: '<PATH TO ARTIFACT>', // e.g. 'libapp.so'
platform: '<PLATFORM>', // e.g. 'android'
arch: '<ARCHITECTURE>', // e.g. 'aarch64'
hash: '<HASH>', // 'sha256 hash of the artifact'
);
// Promote a patch to a channel.
await client.promotePatch(patchId: patch.id, channelId: channel.id);
// Close the client.
client.close();
}