Skip to content

Commit 25504d1

Browse files
committed
Merge branch 'release/3.0.0'
2 parents 1ef0aa8 + d75e7d0 commit 25504d1

53 files changed

Lines changed: 799 additions & 378 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,34 +11,35 @@ jobs:
1111
runs-on: [self-hosted, macOS, ARM64]
1212
env:
1313
DERIVED_DATA_PATH: 'DerivedData'
14-
DEVICE: 'iPhone 15 Pro'
14+
DEVICE: 'iPhone 17 Pro'
1515
steps:
1616
- uses: actions/checkout@v4
17+
with:
18+
# Disable shallow clone for SonarCloud analysis
19+
# https://docs.sonarsource.com/sonarqube-cloud/advanced-setup/ci-based-analysis/github-actions-for-sonarcloud
20+
fetch-depth: 0
1721
- uses: actions/cache@v4
1822
with:
1923
path: .build
2024
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
2125
restore-keys: |
2226
${{ runner.os }}-spm-
23-
- name: Install SwiftLint
24-
run: brew install swiftlint
2527
- name: Run process.sh script
2628
run: |
2729
./Scripts/process.sh
2830
exit $?
29-
- name: Select Xcode 15.3
30-
run: sudo xcode-select -s /Applications/Xcode_15.3.app
3131
- name: Build
32-
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild clean build-for-testing -scheme 'CryptomatorCloudAccess' -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH -enableCodeCoverage YES | xcpretty
32+
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild clean build-for-testing -scheme 'CryptomatorCloudAccess' -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH -enableCodeCoverage YES | xcbeautify
3333
- name: Test
34-
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild test-without-building -xctestrun $(find . -type f -name "*.xctestrun") -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH | xcpretty
35-
- name: Upload code coverage report
34+
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild test-without-building -xctestrun $(find . -type f -name "*.xctestrun") -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH | xcbeautify
35+
- name: Generate coverage report
3636
run: |
37-
gem install slather
38-
slather coverage -x --build-directory $DERIVED_DATA_PATH --ignore "$DERIVED_DATA_PATH/SourcePackages/*" --scheme CryptomatorCloudAccess CryptomatorCloudAccess.xcodeproj
39-
bash <(curl -Ls https://coverage.codacy.com/get.sh)
37+
xcresult_path=$(find $DERIVED_DATA_PATH/Logs/Test -name "*.xcresult" | head -n 1)
38+
bash Scripts/xccov-to-sonarqube-generic.sh "$xcresult_path" > sonarqube-generic-coverage.xml
39+
- name: SonarCloud Scan
40+
uses: SonarSource/sonarqube-scan-action@v6.0.0
4041
env:
41-
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
42+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
4243
continue-on-error: true
4344

4445
integration-tests:
@@ -48,7 +49,7 @@ jobs:
4849
if: startsWith(github.ref, 'refs/tags/')
4950
env:
5051
DERIVED_DATA_PATH: 'DerivedData'
51-
DEVICE: 'iPhone 15 Pro'
52+
DEVICE: 'iPhone 17 Pro'
5253
strategy:
5354
fail-fast: false
5455
matrix:
@@ -79,10 +80,8 @@ jobs:
7980
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
8081
restore-keys: |
8182
${{ runner.os }}-spm-
82-
- name: Select Xcode 15.3
83-
run: sudo xcode-select -s /Applications/Xcode_15.3.app
8483
- name: Run integration tests
85-
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -scheme '${{ matrix.scheme-name }}' -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH test | xcpretty
84+
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -scheme '${{ matrix.scheme-name }}' -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH test | xcbeautify
8685
env:
8786
BOX_CLIENT_ID: ${{ secrets.BOX_CLIENT_ID }}
8887
BOX_CLIENT_SECRET: ${{ secrets.BOX_CLIENT_SECRET }}
@@ -107,7 +106,7 @@ jobs:
107106

108107
release:
109108
name: Deploy and draft a release
110-
runs-on: macos-14
109+
runs-on: macos-latest
111110
needs: build
112111
if: startsWith(github.ref, 'refs/tags/')
113112
steps:

.swiftformat

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
--minversion 0.49.2
1+
--minversion 0.60.1
2+
--exclude DerivedData
23

34
# format options
45

.xcode-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
26.0.1

CryptomatorCloudAccess.xcodeproj/project.pbxproj

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
4A05900E2451A145008831F9 /* CloudItemList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A05900D2451A145008831F9 /* CloudItemList.swift */; };
1515
4A0590122451A180008831F9 /* CloudItemMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0590112451A180008831F9 /* CloudItemMetadata.swift */; };
1616
4A05901D2451DD26008831F9 /* CloudProviderError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A05901C2451DD26008831F9 /* CloudProviderError.swift */; };
17+
E00861F84DC147ECB9B19E34 /* NetworkConnectionError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44DAB1C070984F179681E2B8 /* NetworkConnectionError.swift */; };
18+
71515B8520704180B19B44CE /* NetworkConnectionErrorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A308ED4691D4D12A3C0F7BF /* NetworkConnectionErrorTests.swift */; };
1719
4A0785302859F4FE0015DAE1 /* S3Credential.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A07852F2859F4FE0015DAE1 /* S3Credential.swift */; };
1820
4A0785322859F5860015DAE1 /* S3CopyTaskUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0785312859F5860015DAE1 /* S3CopyTaskUtility.swift */; };
1921
4A0785342859F5E30015DAE1 /* AWSS3+Promises.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0785332859F5E30015DAE1 /* AWSS3+Promises.swift */; };
@@ -235,6 +237,8 @@
235237
4A05900D2451A145008831F9 /* CloudItemList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudItemList.swift; sourceTree = "<group>"; };
236238
4A0590112451A180008831F9 /* CloudItemMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudItemMetadata.swift; sourceTree = "<group>"; };
237239
4A05901C2451DD26008831F9 /* CloudProviderError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudProviderError.swift; sourceTree = "<group>"; };
240+
44DAB1C070984F179681E2B8 /* NetworkConnectionError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConnectionError.swift; sourceTree = "<group>"; };
241+
0A308ED4691D4D12A3C0F7BF /* NetworkConnectionErrorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConnectionErrorTests.swift; sourceTree = "<group>"; };
238242
4A07852F2859F4FE0015DAE1 /* S3Credential.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = S3Credential.swift; sourceTree = "<group>"; };
239243
4A0785312859F5860015DAE1 /* S3CopyTaskUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = S3CopyTaskUtility.swift; sourceTree = "<group>"; };
240244
4A0785332859F5E30015DAE1 /* AWSS3+Promises.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AWSS3+Promises.swift"; sourceTree = "<group>"; };
@@ -526,6 +530,7 @@
526530
4A05900B2451A107008831F9 /* CloudProvider.swift */,
527531
9EE62A0C247D54760089DAF7 /* CloudProvider+Convenience.swift */,
528532
4A05901C2451DD26008831F9 /* CloudProviderError.swift */,
533+
44DAB1C070984F179681E2B8 /* NetworkConnectionError.swift */,
529534
);
530535
path = API;
531536
sourceTree = "<group>";
@@ -1012,6 +1017,7 @@
10121017
children = (
10131018
74DF965D24F3DE6400763713 /* CloudPathTests.swift */,
10141019
9EE62A0F247D54E90089DAF7 /* CloudProvider+ConvenienceTests.swift */,
1020+
0A308ED4691D4D12A3C0F7BF /* NetworkConnectionErrorTests.swift */,
10151021
);
10161022
path = API;
10171023
sourceTree = "<group>";
@@ -1342,6 +1348,7 @@
13421348
7416F22924F659550074DA8E /* VaultFormat6ProviderDecorator.swift in Sources */,
13431349
4A3896CE2632D65B00BA3E88 /* MicrosoftGraphAuthenticationProvider.swift in Sources */,
13441350
4A05901D2451DD26008831F9 /* CloudProviderError.swift in Sources */,
1351+
E00861F84DC147ECB9B19E34 /* NetworkConnectionError.swift in Sources */,
13451352
4A0785362859FA820015DAE1 /* AWSEndpoint+CustomRegionName.swift in Sources */,
13461353
4A765CA32878596000794440 /* DirectoryContentCache.swift in Sources */,
13471354
746F091927BD0077003FCD9F /* PCloudIdentifierCache.swift in Sources */,
@@ -1415,6 +1422,7 @@
14151422
4ABE9AA62BCACD1300675D74 /* XCTAssertThrowsError+Async.swift in Sources */,
14161423
4A30DAF62636D79C004B5B4E /* MicrosoftGraphCloudProviderTests.swift in Sources */,
14171424
9EE62A10247D54E90089DAF7 /* CloudProvider+ConvenienceTests.swift in Sources */,
1425+
71515B8520704180B19B44CE /* NetworkConnectionErrorTests.swift in Sources */,
14181426
74E32BEA283E575B005D8A54 /* VaultFormat8CryptorMock.swift in Sources */,
14191427
9ED0E622246180AB00FDB438 /* VaultFormat7CloudProviderMock.swift in Sources */,
14201428
7416F22D24F678AF0074DA8E /* VaultFormat6CloudProviderMockTests.swift in Sources */,
@@ -1547,7 +1555,7 @@
15471555
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
15481556
GCC_WARN_UNUSED_FUNCTION = YES;
15491557
GCC_WARN_UNUSED_VARIABLE = YES;
1550-
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
1558+
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
15511559
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
15521560
MTL_FAST_MATH = YES;
15531561
ONLY_ACTIVE_ARCH = YES;
@@ -1607,7 +1615,7 @@
16071615
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
16081616
GCC_WARN_UNUSED_FUNCTION = YES;
16091617
GCC_WARN_UNUSED_VARIABLE = YES;
1610-
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
1618+
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
16111619
MTL_ENABLE_DEBUG_INFO = NO;
16121620
MTL_FAST_MATH = YES;
16131621
OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-expression-type-checking=200 -Xfrontend -warn-long-function-bodies=200";
@@ -1793,15 +1801,15 @@
17931801
repositoryURL = "https://github.com/google/google-api-objectivec-client-for-rest.git";
17941802
requirement = {
17951803
kind = upToNextMinorVersion;
1796-
minimumVersion = 3.4.0;
1804+
minimumVersion = 5.2.0;
17971805
};
17981806
};
17991807
4A567B182615C917002C4D82 /* XCRemoteSwiftPackageReference "GTMAppAuth" */ = {
18001808
isa = XCRemoteSwiftPackageReference;
18011809
repositoryURL = "https://github.com/google/GTMAppAuth.git";
18021810
requirement = {
18031811
kind = upToNextMinorVersion;
1804-
minimumVersion = 4.1.0;
1812+
minimumVersion = 5.0.0;
18051813
};
18061814
};
18071815
4A567B352615CAAC002C4D82 /* XCRemoteSwiftPackageReference "gtm-session-fetcher" */ = {
@@ -1817,7 +1825,7 @@
18171825
repositoryURL = "https://github.com/openid/AppAuth-iOS.git";
18181826
requirement = {
18191827
kind = upToNextMinorVersion;
1820-
minimumVersion = 1.7.0;
1828+
minimumVersion = 2.0.0;
18211829
};
18221830
};
18231831
4A75E1C228806F5800952FE6 /* XCRemoteSwiftPackageReference "msgraph-sdk-objc-models-spm" */ = {
@@ -1849,15 +1857,15 @@
18491857
repositoryURL = "https://github.com/CocoaLumberjack/CocoaLumberjack.git";
18501858
requirement = {
18511859
kind = upToNextMinorVersion;
1852-
minimumVersion = 3.8.0;
1860+
minimumVersion = 3.9.0;
18531861
};
18541862
};
18551863
4AF0AA7A2844DDD200C20B75 /* XCRemoteSwiftPackageReference "aws-sdk-ios-spm" */ = {
18561864
isa = XCRemoteSwiftPackageReference;
18571865
repositoryURL = "https://github.com/aws-amplify/aws-sdk-ios-spm.git";
18581866
requirement = {
18591867
kind = upToNextMinorVersion;
1860-
minimumVersion = 2.35.0;
1868+
minimumVersion = 2.41.0;
18611869
};
18621870
};
18631871
740C5877262F800A00F63423 /* XCRemoteSwiftPackageReference "JOSESwift" */ = {
@@ -1873,7 +1881,7 @@
18731881
repositoryURL = "https://github.com/AzureAD/microsoft-authentication-library-for-objc.git";
18741882
requirement = {
18751883
kind = upToNextMinorVersion;
1876-
minimumVersion = 1.5.0;
1884+
minimumVersion = 2.9.0;
18771885
};
18781886
};
18791887
746F090C27BC0932003FCD9F /* XCRemoteSwiftPackageReference "pcloud-sdk-swift" */ = {
@@ -1897,7 +1905,7 @@
18971905
repositoryURL = "https://github.com/groue/GRDB.swift.git";
18981906
requirement = {
18991907
kind = upToNextMinorVersion;
1900-
minimumVersion = 6.29.1;
1908+
minimumVersion = 7.10.0;
19011909
};
19021910
};
19031911
74F93565251F6863001F4ADA /* XCRemoteSwiftPackageReference "promises" */ = {

CryptomatorCloudAccess.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

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

Package.resolved

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

0 commit comments

Comments
 (0)