runPublisher method
Implementation
Future<int> runPublisher(PublisherJob publisher, ConfigParser config) async {
logger.logEmpty();
List<int> results = [];
if (publisher.fastlane != null) {
logger.logInfo("Publishing binary with Fastlane");
final fastlaneResult = await publisher.fastlane!
.publish()
.then((value) {
logger.logEmpty();
logger.logSuccess("Fastlane publish process finished");
return value;
})
.catchError((error) {
logger.logEmpty();
logger.logError("Fastlane publish failed with error: $error");
return 1;
});
results.add(fastlaneResult);
}
if (publisher.firebase != null) {
logger.logInfo("Publishing Android binary with Firebase");
final firebaseResult = await publisher.firebase!
.publish()
.then((value) {
logger.logEmpty();
logger.logSuccess("Firebase publish process finished");
return value;
})
.catchError((error) {
logger.logEmpty();
logger.logError("Firebase publish failed with error: $error");
return 1;
});
results.add(firebaseResult);
}
if (publisher.xcrun != null) {
logger.logInfo("Publishing iOS binary with Xcrun");
final xcrunResult = await publisher.xcrun!
.publish()
.then((value) {
logger.logEmpty();
logger.logSuccess("Xcrun publish process finished");
return value;
})
.catchError((error) {
logger.logEmpty();
logger.logError("Xcrun publish failed with error: $error");
return 1;
});
results.add(xcrunResult);
}
if (publisher.github != null) {
logger.logInfo("Publishing binary with Github");
final githubResult = await publisher.github!
.publish()
.then((value) {
logger.logEmpty();
logger.logSuccess("Github publish process finished");
return value;
})
.catchError((error) {
logger.logEmpty();
logger.logError("Github Publish failed with error: $error");
return 1;
});
results.add(githubResult);
}
if (results.isEmpty) {
logger.logError("No publish results found.");
return 1;
}
return results.reduce((value, element) => value + element);
}