setVersion method

Future<void> setVersion(
  1. String version, {
  2. bool noCommit = false,
  3. bool noTag = false,
  4. bool push = false,
})

Implementation

Future<void> setVersion(
    String version, {
      bool noCommit = false,
      bool noTag = false,
      bool push = false,
    }) async {
  if (!isValidVersion(version)) {
    throw ArgumentError('Invalid semantic version format');
  }

  await executor.updateVersion(version);

  final canTag = !noCommit && !noTag;

  if (!noCommit) {
    await executor.commit('chore: set version to $version');
  } else if (!noTag) {
    executor.getLogger.warn('[WARNING] Cannot create tag because commit was skipped.');
  }

  if (canTag) {
    await executor.createTag('v$version');
  }

  if (!noCommit) {
    if (push) await executor.push();
  } else if (push) {
    executor.getLogger.warn('[WARNING] Cannot push because commit was skipped.');
  }
}