uploadToGitHub static method
Implementation
static Future<void> uploadToGitHub(String apkPath) async {
final config = Config().config;
final gitHubConfig = config.uploadOptions.github;
final gitHubToken = config.uploadOptions.github.token;
final gitHubRepo = config.uploadOptions.github.repo;
final gitHubTag = config.uploadOptions.github.tag;
if (!gitHubConfig.enabled) {
return;
} else if (gitHubToken == null) {
print('❌ GitHub token not found. Please check your config yaml file.');
return;
} else if (gitHubRepo == null) {
print('❌ GitHub Repo not found. Please check your config yaml file.');
return;
}
final tag = gitHubTag; // Use a dynamic versioning system if needed
final releaseName = 'Release $tag';
final releaseDescription =
'🚀 Release built using Flutter Release X. For more details, visit: https://pub.dev/packages/flutter_release_x';
final fileName = 'app-release.apk';
try {
final release = await _findReleaseByTag(gitHubRepo, tag, gitHubToken);
if (release != null) {
// If release exists, delete it and re-create the release
await _deleteRelease(gitHubRepo, release['id'], gitHubToken);
await _createAndUploadNewRelease(gitHubRepo, tag, releaseName,
releaseDescription, apkPath, fileName, gitHubToken);
} else {
// If release doesn't exist, create a new release
await _createAndUploadNewRelease(gitHubRepo, tag, releaseName,
releaseDescription, apkPath, fileName, gitHubToken);
}
} catch (e) {
print('❌ Error: $e');
exit(0);
}
}