execute checks before release

This commit is contained in:
Franco Meloni 2019-10-29 22:13:35 +00:00
parent 086160c002
commit 1b00500718
3 changed files with 16 additions and 8 deletions

View File

@ -19,7 +19,7 @@ if let bump = VersionBumpOption(rawValue: CommandLine.arguments[1]) {
version = CommandLine.arguments[1] version = CommandLine.arguments[1]
} }
var stepsDictionary: [String: Any]! var dictionary: [String: Any]!
let startingTime = Date() let startingTime = Date()
@ -30,16 +30,24 @@ if let rocketYamlPath = RocketFileFinder.rocketFilePath() {
exit(1) exit(1)
} }
stepsDictionary = loadedDictionary dictionary = loadedDictionary
} else if let packageConfig = try? PackageConfiguration.load().configuration, } else if let packageConfig = try? PackageConfiguration.load().configuration,
let rocketConfig = packageConfig["rocket"] as? [String: Any] { let rocketConfig = packageConfig["rocket"] as? [String: Any] {
stepsDictionary = rocketConfig dictionary = rocketConfig
} else { } else {
stepsDictionary = [:] dictionary = [:]
}
let checks = ChecksParser.parsePreReleaseChecks(fromDictionary: dictionary)
let failedChecks = checks.filter { !$0.check() }
guard failedChecks.count == 0 else {
logger.logError("Pre release checks failed")
exit(1)
} }
let stepPrinter = StepDescriptionPrinter() let stepPrinter = StepDescriptionPrinter()
let stepExecutors = StepsParser.parseSteps(fromDictionary: stepsDictionary, logger: logger) let stepExecutors = StepsParser.parseSteps(fromDictionary: dictionary, logger: logger)
stepExecutors.forEach { stepExecutors.forEach {
$0.printStartStepDescription(logger: logger) $0.printStartStepDescription(logger: logger)
$0.executeStep(version: version, logger: logger) $0.executeStep(version: version, logger: logger)

View File

@ -1,4 +1,4 @@
protocol Check { public protocol Check {
init() init()
func check() -> Bool func check() -> Bool
} }

View File

@ -1,7 +1,7 @@
import Logger import Logger
enum ChecksParser { public enum ChecksParser {
enum CodingKeys: String { private enum CodingKeys: String {
case preReleaseChecks = "pre_release_checks" case preReleaseChecks = "pre_release_checks"
} }