runPublisher method

Future<int> runPublisher(
  1. PublisherJob publisher,
  2. ConfigParser config
)

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);
}