diff --git a/.github/workflows/nightly-tests.yml b/.github/workflows/nightly-tests.yml index 13abe23..4db494e 100644 --- a/.github/workflows/nightly-tests.yml +++ b/.github/workflows/nightly-tests.yml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: swift-image: - - name: swiftlang/swift:nightly-6.2-jammy + - name: swiftlang/swift:nightly-6.3-jammy config: - mode: "debug" - mode: "release" @@ -80,7 +80,7 @@ jobs: fail-fast: false matrix: swift: - - version: 6.2-snapshot + - version: 6.3-snapshot runs-on: macos-26 @@ -165,7 +165,7 @@ jobs: xcode: - version: latest-stable swift: - - version: 6.2-snapshot + - version: 6.3-snapshot config: - mode: "debug" - mode: "release" @@ -273,3 +273,46 @@ jobs: --enable-code-coverage \ -Xswiftc -require-explicit-sendable \ -c ${{ matrix.config.mode }} + + android-nightly-tests: + strategy: + fail-fast: false + matrix: + swift: + - version: nightly-6.3 + config: + - mode: "debug" + - mode: "release" + + runs-on: ubuntu-latest + + timeout-minutes: 30 + + steps: + - name: Free disk space for emulator + run: | + sudo rm -rf /opt/microsoft /opt/google /opt/az /usr/share/miniconda /usr/share/az* /usr/share/glade* /usr/local/share/chromium /usr/local/share/powershell /usr/share/dotnet /opt/ghc /opt/hostedtoolcache/CodeQL /usr/local/share/boost + docker image prune --all --force + docker builder prune -a + + - name: Ensure zstd is available for faster caching + run: sudo apt-get update -yq && sudo apt-get install -yq zstd + + - name: Check out code + uses: actions/checkout@v6 + + - name: Replace symlinks with the actual files + run: find . -type l -exec sh -c 'LINKED="$(readlink -f "{}")"; rm "{}"; cp -a "$LINKED" "{}"' \; + + - name: Run unit tests + uses: skiptools/swift-android-action@v2 + with: + android-emulator-test-folder: /data/local/tmp/android-xctest + test-env: PROJECT_ROOT_FOR_TESTING=/data/local/tmp/android-xctest + swift-version: ${{ matrix.swift.version }} + swift-configuration: ${{ matrix.config.mode }} + copy-files: Tests + swift-build-flags: >- + --build-tests + --explicit-target-dependency-import-check error + swift-test-flags: --skip "IntegrationTests." diff --git a/Benchmarks/Package.resolved b/Benchmarks/Package.resolved index 3326a70..81991d8 100644 --- a/Benchmarks/Package.resolved +++ b/Benchmarks/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "9cb8d1215c0b4f4d44483db8825fd129593debac0375689ef689e695cfb6b028", + "originHash" : "1db1ab9da4b18b41322ca05505aadcf8b517c9c99798be7cf91a1b83a6152f91", "pins" : [ { "identity" : "hdrhistogram-swift", @@ -60,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swift-dns/swift-idna.git", "state" : { - "revision" : "8a1518fc5b1eb10f0b3674e954bded0590592d0c", - "version" : "1.0.0-beta.21" + "revision" : "be09eb86d6d05030d7d5ff6e0af26c8acc994f7c", + "version" : "1.0.0-beta.22" } }, { diff --git a/Benchmarks/Package.swift b/Benchmarks/Package.swift index fe541df..3e4d781 100644 --- a/Benchmarks/Package.swift +++ b/Benchmarks/Package.swift @@ -19,7 +19,7 @@ let package = Package( .default(enabledTraits: ["IDNA_SUPPORT", "NIO_BYTE_BUFFER_SUPPORT"]), ], dependencies: [ - .package(url: "https://github.com/swift-dns/swift-idna.git", from: "1.0.0-beta.21"), + .package(url: "https://github.com/swift-dns/swift-idna.git", from: "1.0.0-beta.22"), .package(url: "https://github.com/apple/swift-nio.git", from: "2.82.0"), ], targets: [ diff --git a/Package.resolved b/Package.resolved index 5bf51dc..8832327 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "36de40527fd51068beb7ae3bfdd881d64278d880647fcec2201f1cdf2df29a6a", + "originHash" : "513e37ee242722c2ac7b23ad450a6882026c6e4334db48bab827466ea4e88a50", "pins" : [ { "identity" : "swift-atomics", @@ -24,8 +24,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/swift-dns/swift-idna.git", "state" : { - "revision" : "8a1518fc5b1eb10f0b3674e954bded0590592d0c", - "version" : "1.0.0-beta.21" + "revision" : "be09eb86d6d05030d7d5ff6e0af26c8acc994f7c", + "version" : "1.0.0-beta.22" } }, { diff --git a/Package.swift b/Package.swift index f441842..3432bef 100644 --- a/Package.swift +++ b/Package.swift @@ -17,7 +17,7 @@ let package = Package( .default(enabledTraits: ["IDNA_SUPPORT", "NIO_BYTE_BUFFER_SUPPORT"]), ], dependencies: [ - .package(url: "https://github.com/swift-dns/swift-idna.git", from: "1.0.0-beta.21"), + .package(url: "https://github.com/swift-dns/swift-idna.git", from: "1.0.0-beta.22"), .package(url: "https://github.com/apple/swift-nio.git", from: "2.82.0"), ], targets: [ diff --git a/Sources/Domain/DomainName.swift b/Sources/Domain/DomainName.swift index 0baa94c..5a60675 100644 --- a/Sources/Domain/DomainName.swift +++ b/Sources/Domain/DomainName.swift @@ -62,7 +62,7 @@ public struct DomainName: Sendable { /// Non-ASCII names are converted to ASCII based on the IDNA spec, in the initializers. /// Non-lowercased ASCII names are converted to lowercased ASCII in the initializers. /// - /// Based on the DNS specs, all names are case-insensitive. + /// Based on the DNS spec, all names are case-insensitive. /// This package goes further and normalizes every domainName to lowercase to avoid inconsistencies. /// /// [RFC 9499, DNS Terminology, March 2024](https://tools.ietf.org/html/rfc9499) diff --git a/Tests/EndpointTests/Resources.swift b/Tests/EndpointTests/Resources.swift index cd2d5f0..cdba0ad 100644 --- a/Tests/EndpointTests/Resources.swift +++ b/Tests/EndpointTests/Resources.swift @@ -23,8 +23,17 @@ enum Resources: String { private func qualifiedPath() -> String { var components = URL(fileURLWithPath: #filePath).pathComponents - while components.last != "swift-endpoint" { - components.removeLast() + if let projectRootForTesting = ProcessInfo.processInfo + .environment["PROJECT_ROOT_FOR_TESTING"], + !projectRootForTesting.isEmpty + { + components = URL(fileURLWithPath: projectRootForTesting).pathComponents + } else { + components = URL(fileURLWithPath: #filePath).pathComponents + + while components.last != "swift-endpoint" { + components.removeLast() + } } components.append(contentsOf: ["Tests", "Resources", self.rawValue])