Merge pull request #24 from f-meloni/default_steps

Use default steps if there are no before/after steps
This commit is contained in:
Franco Meloni 2019-02-09 12:10:01 +00:00 committed by GitHub
commit 0ac3d62b59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 45 additions and 46 deletions

View File

@ -1,7 +0,0 @@
---
before:
- script:
content: echo "Testing Release for $VERSION"
after:
- script:
content: echo "releasing $VERSION"

View File

@ -1,19 +0,0 @@
---
steps:
- script:
content: echo "releasing $VERSION"
- hide_dev_dependencies
- git_add:
paths:
- Package.swift
- commit:
no_verify: true
- tag
- unhide_dev_dependencies
- git_add:
paths:
- Package.swift
- commit:
message: Unhide dev dependencies
no_verify: true
- push

View File

@ -17,10 +17,3 @@ matrix:
script:
- swift test
- ./.build/x86_64-unknown-linux/debug/rocket 1.0.0 --rocket-file .test.yml
- os: osx
name: After Before test
osx_image: xcode10
script:
- swift build
- ./.build/x86_64-apple-macosx10.10/debug/rocket 1.0.0 --rocket-file .after_before_test.yml

View File

@ -24,8 +24,8 @@
"repositoryURL": "https://github.com/Quick/Nimble",
"state": {
"branch": null,
"revision": "df937ffd185b3dd1a44e0c234121cf826b599eb4",
"version": "7.3.2"
"revision": "9a281b1cfa1c53d1e8bd92e1798e4e473af8d263",
"version": "7.3.3"
}
},
{
@ -42,8 +42,8 @@
"repositoryURL": "https://github.com/Quick/Quick",
"state": {
"branch": null,
"revision": "5fbf13871d185526993130c3a1fad0b70bfe37ce",
"version": "1.3.2"
"revision": "f2b5a06440ea87eba1a167cab37bf6496646c52e",
"version": "1.3.4"
}
},
{
@ -60,8 +60,8 @@
"repositoryURL": "https://github.com/nicklockwood/SwiftFormat.git",
"state": {
"branch": null,
"revision": "b6b91dea9d2accd28872cf32711c51bcaef2b9a5",
"version": "0.37.3"
"revision": "5a136fc7db30aa3b27aa5298bbc83926752f580a",
"version": "0.38.0"
}
},
{

View File

@ -48,6 +48,18 @@ With PackageConfig (https://github.com/orta/PackageConfig) you can put the confi
])
```
## Default steps
If there is no step definition Rocket will run the default steps:
- **hide_dev_dependencies**
- **git_add**
- **commit**
- **tag**
- **unhide_dev_dependencies**
- **git_add**
- **commit** (message: "Unhide dev dependencies")
- **push** (remote=origin branch=master)
## Before/After steps
If you use the `before` and/or `after` keys
@ -63,14 +75,18 @@ after:
content: echo "released $VERSION"
```
Rocket will execute some default steps between the before and after steps:
Rocket will execute the default steps between the before and after steps
- `echo "Testing Release for $VERSION"`
- **hide_dev_dependencies**
- **git_add**
- **commit**
- **tag**
- **unhide_dev_dependencies**
- **git_add**
- **commit** (message: "Unhide dev dependencies")
- **push** (remote=origin branch=master)
- `echo "released $VERSION"`

View File

@ -28,7 +28,7 @@ if let rocketYamlPath = RocketFileFinder.rocketFilePath() {
} else if let rocketConfig = getPackageConfig()["rocket"] as? [String: Any] {
stepsDictionary = rocketConfig
} else {
logger.logError("Steps not found")
stepsDictionary = [:]
}
let stepPrinter = StepDescriptionPrinter()

View File

@ -10,6 +10,7 @@ public class StepsParser {
Step.unhideDependencies.rawValue,
Step.gitAdd.rawValue,
[Step.commit.rawValue: ["message": "Unhide dependencies"]],
Step.push.rawValue,
]
enum CodingKeys: String {
@ -54,7 +55,7 @@ public class StepsParser {
return beforeSteps + defaultSteps + afterSteps
} else {
return nil
return defaultSteps
}
}

View File

@ -98,7 +98,22 @@ final class StepsParserTests: XCTestCase {
expect((steps[5] as! UnhideDevDependenciesExecutor).parameters.packagePath) == "Package.swift"
expect((steps[6] as! GitAddExecutor).parameters.paths) == ["."]
expect(steps[7]).to(beAKindOf(CommitExecutor.self))
expect((steps[8] as! ScriptExecutor).parameters.content) == "Script/after.sh"
expect(steps[8]).to(beAKindOf(PushExecutor.self))
expect((steps[9] as! ScriptExecutor).parameters.content) == "Script/after.sh"
}
func testItParsesItReturnsTheDefaultParametersIfTheDictionaryIsEmpty() {
let dictionary: [String: Any] = [:]
let steps = StepsParser.parseSteps(fromDictionary: dictionary, logger: logger)
expect((steps[0] as! HideDevDependenciesExecutor).parameters.packagePath) == "Package.swift"
expect((steps[1] as! GitAddExecutor).parameters.paths) == ["."]
expect(steps[2]).to(beAKindOf(CommitExecutor.self))
expect(steps[3]).to(beAKindOf(TagExecutor.self))
expect((steps[4] as! UnhideDevDependenciesExecutor).parameters.packagePath) == "Package.swift"
expect((steps[5] as! GitAddExecutor).parameters.paths) == ["."]
expect(steps[6]).to(beAKindOf(CommitExecutor.self))
}
func testItParsesCorrectlyWhenOnlyBeforeIsSpecified() {
@ -111,7 +126,7 @@ final class StepsParserTests: XCTestCase {
let steps = StepsParser.parseSteps(fromDictionary: dictionary, logger: logger)
expect((steps[0] as! ScriptExecutor).parameters.content) == "swiftlint"
expect(steps.count) == 8
expect(steps.count) == 9
}
func testItParsesCorrectlyWhenOnlyAfterIsSpecified() {
@ -123,8 +138,8 @@ final class StepsParserTests: XCTestCase {
let steps = StepsParser.parseSteps(fromDictionary: dictionary, logger: logger)
expect((steps[7] as! ScriptExecutor).parameters.content) == "Script/after.sh"
expect(steps.count) == 8
expect((steps[8] as! ScriptExecutor).parameters.content) == "Script/after.sh"
expect(steps.count) == 9
}
}