Skip to content

Commit ec5dc3e

Browse files
authored
Merge pull request #482 from danger/dependency_resolver_check
Fix Dependencies resolver on Xcode 13
2 parents 82e1d44 + ab3c0d2 commit ec5dc3e

File tree

5 files changed

+55
-10
lines changed

5 files changed

+55
-10
lines changed

.github/workflows/ci.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,47 @@ jobs:
4747
env:
4848
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4949

50+
test-dependencies-resolver:
51+
name: Test dependencies resolver
52+
runs-on: macOS-11
53+
strategy:
54+
matrix:
55+
xcode: ["12.4", "12.5.1", "13.0"]
56+
steps:
57+
- uses: actions/checkout@v2
58+
59+
- name: Cache dependencies
60+
uses: actions/cache@v2
61+
with:
62+
path: |
63+
.build/artifacts
64+
.build/checkouts
65+
.build/repositories
66+
key: ${{ runner.os }}-dependencies-${{ matrix.xcode }}-${{ hashFiles('**/Package.resolved') }}
67+
restore-keys: |
68+
${{ runner.os }}-dependencies-${{ matrix.xcode }}-
69+
${{ runner.os }}-dependencies-
70+
${{ runner.os }}-
71+
72+
- name: Select Xcode
73+
run: |
74+
xcodebuild -version
75+
ls -nt /Applications/ | grep "Xcode*"
76+
sudo xcode-select -switch /Applications/Xcode_${{ matrix.xcode }}.app
77+
xcodebuild -version
78+
79+
- name: Install danger-js
80+
run: brew install danger/tap/danger-js
81+
82+
- run: make install
83+
84+
- run: mkdir DangerTestWithDependencies && mv DangerfileWithDependencies.swift DangerTestWithDependencies/Dangerfile.swift
85+
86+
- run: cd DangerTestWithDependencies && danger-swift ci --verbose --failOnErrors
87+
if: ${{ github.event_name == 'pull_request' }}
88+
env:
89+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90+
5091
test-on-linux:
5192
name: Test on Linux
5293
runs-on: ubuntu-latest

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
## Master
1515

16-
## Next
16+
- Fix Dependencies resolver on Xcode 13 [@f-meloni][] - [#482](https://github.com/danger/swift/pull/482)
1717
- Add support for Swift 5.5 and Xcode 13 [@avdlee][] - [#480](https://github.com/danger/swift/pull/480)
1818

1919
## 3.12.1

Package.resolved

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import PackageDescription
77
let package = Package(
88
name: "danger-swift",
99
products: [
10-
.library(name: "Danger", targets: ["Danger"]),
10+
.library(name: "Danger", type: .dynamic, targets: ["Danger"]),
1111
.library(name: "DangerFixtures", targets: ["DangerFixtures"]),
1212
.library(name: "DangerDeps", type: .dynamic, targets: ["Danger-Swift"]), // dev
1313
.executable(name: "danger-swift", targets: ["Runner"]),

Sources/DangerDependenciesResolver/PackageManager.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Version
55

66
public struct PackageManager {
77
enum Errors: Error {
8-
case failedToUpdatePackages(String)
8+
case failedToUpdatePackages(String, error: String)
99
case unrecognizedTagFormat(String)
1010
}
1111

@@ -19,6 +19,7 @@ public struct PackageManager {
1919
private let packageDataProvider: PackageDataProviding
2020
private let logger: Logger
2121
private var masterPackageName: String { "PACKAGES" }
22+
private var fakeFile = "Fake.swift"
2223

2324
// MARK: - Init
2425

@@ -159,11 +160,14 @@ public struct PackageManager {
159160
let executor = ShellExecutor()
160161

161162
let toolsVersion = try resolveSwiftToolsVersion(executor: executor, onFolder: generatedFolder)
163+
try generatedFolder.createSubfolderIfNeeded(withName: "Sources/\(masterPackageName)")
164+
fileCreator.createFile(atPath: generatedFolder.appendingPath("Sources/\(masterPackageName)").appendingPath(fakeFile),
165+
contents: Data())
162166
try packageGenerator.generateMasterPackageDescription(forSwiftToolsVersion: toolsVersion)
163167
try executeSwiftCommand("package update", onFolder: generatedFolder, arguments: [], executor: executor)
164168
try generatedFolder.createSubfolderIfNeeded(withName: "Packages")
165169
} catch {
166-
throw Errors.failedToUpdatePackages(folder)
170+
throw Errors.failedToUpdatePackages(generatedFolder, error: "\(error)")
167171
}
168172
}
169173

0 commit comments

Comments
 (0)