diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml new file mode 100644 index 0000000..d421623 --- /dev/null +++ b/.github/workflows/swift.yml @@ -0,0 +1,16 @@ +name: CI + +on: [pull_request] + +jobs: + build: + runs-on: macos-11 + steps: + - uses: actions/checkout@v2 + - run: gem install bundler + - run: bundle install + - run: npm install -g danger + - run: set -o pipefail env NSUnbufferedIO=YES xcodebuild -scheme DangerSwiftCoverage-Package -destination 'platform=macOS' -clonedSourcePackagesDirPath ~/.build -enableCodeCoverage YES -derivedDataPath build/ build test | XCPRETTY_JSON_FILE_OUTPUT=result.json xcpretty -f `xcpretty-json-formatter` + - run: DEBUG="*" swift run danger-swift ci + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..2700ac6 Binary files /dev/null and b/.swiftpm/xcode/package.xcworkspace/xcuserdata/franco.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/.swiftpm/xcode/xcuserdata/franco.xcuserdatad/xcschemes/xcschememanagement.plist b/.swiftpm/xcode/xcuserdata/franco.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..e4a732d --- /dev/null +++ b/.swiftpm/xcode/xcuserdata/franco.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,66 @@ + + + + + SchemeUserState + + DangerDeps.xcscheme_^#shared#^_ + + orderHint + 1 + + DangerSwiftCoverage-Package.xcscheme_^#shared#^_ + + orderHint + 0 + + DangerSwiftCoverage.xcscheme_^#shared#^_ + + orderHint + 2 + + SWXMLHashPlayground (Playground) 1.xcscheme + + isShown + + orderHint + 5 + + SWXMLHashPlayground (Playground) 2.xcscheme + + isShown + + orderHint + 6 + + SWXMLHashPlayground (Playground).xcscheme + + isShown + + orderHint + 4 + + Test area (Playground) 1.xcscheme + + isShown + + orderHint + 8 + + Test area (Playground) 2.xcscheme + + isShown + + orderHint + 9 + + Test area (Playground).xcscheme + + isShown + + orderHint + 7 + + + + diff --git a/Package.resolved b/Package.resolved index b8eecb2..3cb97f3 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,40 +1,13 @@ { "object": { "pins": [ - { - "package": "Commandant", - "repositoryURL": "https://github.com/Carthage/Commandant.git", - "state": { - "branch": null, - "revision": "ab68611013dec67413628ac87c1f29e8427bc8e4", - "version": "0.17.0" - } - }, - { - "package": "CwlCatchException", - "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", - "state": { - "branch": null, - "revision": "7cd2f8cacc4d22f21bc0b2309c3b18acf7957b66", - "version": "1.2.0" - } - }, - { - "package": "CwlPreconditionTesting", - "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", - "state": { - "branch": null, - "revision": "c228db5d2ad1b01ebc84435e823e6cca4e3db98b", - "version": "1.2.0" - } - }, { "package": "DangerXCodeSummary", "repositoryURL": "https://github.com/f-meloni/danger-swift-xcodesummary", "state": { "branch": null, - "revision": "742e2854a1693ddb7f511ca7a4e6206b12103b20", - "version": "1.1.0" + "revision": "289d5136cead3d4b1eae509acc3f0b044252fc6c", + "version": "1.2.1" } }, { @@ -42,8 +15,8 @@ "repositoryURL": "https://github.com/orta/Komondor", "state": { "branch": null, - "revision": "3cd6d76887816ead5931ddbfb249c2935f518e17", - "version": "1.0.4" + "revision": "7c3c6040c01c99b83afc7eaa8f2a8a69337f659a", + "version": "1.1.1" } }, { @@ -55,40 +28,22 @@ "version": "0.2.3" } }, - { - "package": "Nimble", - "repositoryURL": "https://github.com/Quick/Nimble.git", - "state": { - "branch": null, - "revision": "b02b00b30b6353632aa4a5fb6124f8147f7140c0", - "version": "8.0.5" - } - }, { "package": "OctoKit", "repositoryURL": "https://github.com/nerdishbynature/octokit.swift", "state": { "branch": null, - "revision": "9ad4d6eff94ad1d9873d3b410a47c663c820d4bd", - "version": "0.10.0" + "revision": "9521cdff919053868ab13cd08a228f7bc1bde2a9", + "version": "0.11.0" } }, { "package": "PackageConfig", - "repositoryURL": "https://github.com/shibapm/PackageConfig", - "state": { - "branch": null, - "revision": "bf90dc69fa0792894b08a0b74cf34029694ae486", - "version": "0.13.0" - } - }, - { - "package": "Quick", - "repositoryURL": "https://github.com/Quick/Quick.git", + "repositoryURL": "https://github.com/shibapm/PackageConfig.git", "state": { "branch": null, - "revision": "33682c2f6230c60614861dfc61df267e11a1602f", - "version": "2.2.0" + "revision": "84d4d70de31a797ca54abee47816cdafba36d290", + "version": "1.0.2" } }, { @@ -105,8 +60,8 @@ "repositoryURL": "https://github.com/f-meloni/Rocket", "state": { "branch": null, - "revision": "623cb4ccf55d708d082516ccd5cfea3dac8f9032", - "version": "1.0.0" + "revision": "9880a5beb7fcb9e61ddd5764edc1700b8c418deb", + "version": "1.2.1" } }, { @@ -123,8 +78,8 @@ "repositoryURL": "https://github.com/jpsim/SourceKitten.git", "state": { "branch": null, - "revision": "97b5848e5692150d75b5cf0b81d7ebef5f4d5071", - "version": "0.28.0" + "revision": "558628392eb31d37cb251cfe626c53eafd330df6", + "version": "0.31.1" } }, { @@ -132,8 +87,17 @@ "repositoryURL": "https://github.com/danger/swift.git", "state": { "branch": null, - "revision": "9abfbf269f7b1d4bb799ca8f52620180d63d953e", - "version": "3.0.0" + "revision": "ac99660abd8253b97f4d73e8ed756f347196d14a", + "version": "3.12.1" + } + }, + { + "package": "swift-argument-parser", + "repositoryURL": "https://github.com/apple/swift-argument-parser.git", + "state": { + "branch": null, + "revision": "d2930e8fcf9c33162b9fcc1d522bc975e2d4179b", + "version": "1.0.1" } }, { @@ -141,8 +105,8 @@ "repositoryURL": "https://github.com/nicklockwood/SwiftFormat", "state": { "branch": null, - "revision": "d9b7cf39e06e89428004a767d97006fb6d293c53", - "version": "0.43.5" + "revision": "3c33b468d5c15b6f916b2b4c55a9a3105674c62d", + "version": "0.48.17" } }, { @@ -150,8 +114,8 @@ "repositoryURL": "https://github.com/Realm/SwiftLint", "state": { "branch": null, - "revision": "76d44cff391645a7f4d5ba2bf1853afaf3f5c1fb", - "version": "0.38.2" + "revision": "99465e659fb91facab5b1d3c0f9229176d086bf1", + "version": "0.45.0" } }, { @@ -159,8 +123,8 @@ "repositoryURL": "https://github.com/kareman/SwiftShell", "state": { "branch": null, - "revision": "fb7fc2c9ad8811caf324431a508fb79e3fb74f99", - "version": "5.0.1" + "revision": "a6014fe94c3dbff0ad500e8da4f251a5d336530b", + "version": "5.1.0-beta.1" } }, { @@ -177,8 +141,8 @@ "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", "state": { "branch": null, - "revision": "a4931e5c3bafbedeb1601d3bb76bbe835c6d475a", - "version": "5.0.1" + "revision": "9183170d20857753d4f331b0ca63f73c60764bf3", + "version": "5.0.2" } }, { @@ -195,8 +159,8 @@ "repositoryURL": "https://github.com/jpsim/Yams", "state": { "branch": null, - "revision": "c947a306d2e80ecb2c0859047b35c73b8e1ca27f", - "version": "2.0.0" + "revision": "9ff1cc9327586db4e0c8f46f064b6a82ec1566fa", + "version": "4.0.6" } } ] diff --git a/Package.swift b/Package.swift index e2be8da..d375409 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.1 +// swift-tools-version:5.5 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription @@ -14,23 +14,29 @@ let package = Package( .library(name: "DangerDeps", type: .dynamic, targets: ["DangerDependencies"]), // dev ], dependencies: [ - .package(url: "https://github.com/danger/swift.git", from: "3.0.0"), + .package(name: "danger-swift", url: "https://github.com/danger/swift.git", from: "3.0.0"), // Dev dependencies .package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.35.8"), // dev .package(url: "https://github.com/Realm/SwiftLint", from: "0.28.1"), // dev .package(url: "https://github.com/f-meloni/Rocket", from: "1.0.0"), // dev .package(url: "https://github.com/orta/Komondor", from: "1.0.0"), // dev - .package(url: "https://github.com/f-meloni/danger-swift-xcodesummary", from: "1.0.0"), // dev + .package(name: "DangerXCodeSummary", url: "https://github.com/f-meloni/danger-swift-xcodesummary", from: "1.0.0"), // dev ], targets: [ - .target(name: "DangerDependencies", dependencies: ["Danger", "DangerSwiftCoverage", "DangerXCodeSummary"]), // dev + .target(name: "DangerDependencies", dependencies: [ + .product(name: "Danger", package: "danger-swift"), + "DangerSwiftCoverage", + "DangerXCodeSummary", + ]), // dev .target( name: "DangerSwiftCoverage", - dependencies: ["Danger"] + dependencies: [ + .product(name: "Danger", package: "danger-swift"), + ] ), .testTarget( name: "DangerSwiftCoverageTests", - dependencies: ["DangerSwiftCoverage", "DangerFixtures"] + dependencies: ["DangerSwiftCoverage", .product(name: "DangerFixtures", package: "danger-swift")] ), ] ) diff --git a/Sources/DangerSwiftCoverage/XcodeBuild/XcresultBundleFinder.swift b/Sources/DangerSwiftCoverage/XcodeBuild/XcresultBundleFinder.swift index bc3fd92..21a10fe 100644 --- a/Sources/DangerSwiftCoverage/XcodeBuild/XcresultBundleFinder.swift +++ b/Sources/DangerSwiftCoverage/XcodeBuild/XcresultBundleFinder.swift @@ -17,11 +17,12 @@ enum XcresultBundleFinder: XcresultBundleFinding { let testFolder = derivedDataFolder + "/Logs/Test/" guard let xcresults = try? fileManager.contentsOfDirectory(atPath: testFolder).filter({ $0.split(separator: ".").last == "xcresult" }), - !xcresults.isEmpty else { + !xcresults.isEmpty + else { throw Errors.xcresultNotFound } - let xcresult = testFolder + xcresults.sorted(by: { (left, right) -> Bool in + let xcresult = testFolder + xcresults.sorted(by: { left, right -> Bool in let leftModificationDate = fileManager.modificationDate(forFileAtPath: testFolder + left)?.timeIntervalSince1970 ?? 0 let rightModificationDate = fileManager.modificationDate(forFileAtPath: testFolder + right)?.timeIntervalSince1970 ?? 0