Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 19 additions & 64 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,76 +9,31 @@ on:
jobs:
unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_6_1_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_6_1_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

construct-integration-tests-matrix:
name: Construct integration matrix
runs-on: ubuntu-latest
outputs:
integration-tests-matrix: '${{ steps.generate-matrix.outputs.integration-tests-matrix }}'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- id: generate-matrix
run: echo "integration-tests-matrix=$(curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT"
env:
MATRIX_LINUX_COMMAND: swift package --disable-sandbox multi-node test
MATRIX_LINUX_5_9_ENABLED: false
MATRIX_LINUX_5_10_ENABLED: false
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
enable_macos_checks: true
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

integration-tests:
name: Integration tests
needs: construct-integration-tests-matrix
uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
name: "Integration tests"
matrix_string: '${{ needs.construct-integration-tests-matrix.outputs.integration-tests-matrix }}'

construct-dining-philosophers-matrix:
name: Construct dining philosophers matrix
runs-on: ubuntu-latest
outputs:
dining-philosophers-matrix: '${{ steps.generate-matrix.outputs.dining-philosophers-matrix }}'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- id: generate-matrix
run: echo "dining-philosophers-matrix=$(curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT"
env:
MATRIX_LINUX_SETUP_COMMAND: apt-get update -y && apt-get install -yq jq && git config --global --add safe.directory /swift-openapi-runtime
MATRIX_LINUX_COMMAND: swift run --package-path Samples SampleDiningPhilosophers
MATRIX_LINUX_5_9_ENABLED: false
MATRIX_LINUX_5_10_ENABLED: false
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
linux_build_command: "swift package --disable-sandbox multi-node test"
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

dining-philosophers:
name: Sample dining philosophers
needs: construct-dining-philosophers-matrix
uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main
with:
name: "Sample dining philosophers"
matrix_string: '${{ needs.construct-dining-philosophers-matrix.outputs.dining-philosophers-matrix }}'

cxx-interop:
name: Cxx interop
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false

macos-tests:
name: macOS tests
uses: apple/swift-nio/.github/workflows/macos_tests.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
runner_pool: nightly
build_scheme: swift-distributed-actors-Package
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
linux_pre_build_command: "apt-get update -y && apt-get install -yq jq"
linux_build_command: "swift run --package-path Samples SampleDiningPhilosophers"
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
84 changes: 20 additions & 64 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,81 +9,37 @@ jobs:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
with:
# https://github.com/apple/swift-distributed-actors/issues/1225
api_breakage_check_enabled: false
license_header_check_project_name: "Swift Distributed Actors"

unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_6_1_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_6_1_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

construct-integration-tests-matrix:
name: Construct integration matrix
runs-on: ubuntu-latest
outputs:
integration-tests-matrix: '${{ steps.generate-matrix.outputs.integration-tests-matrix }}'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- id: generate-matrix
run: echo "integration-tests-matrix=$(curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT"
env:
MATRIX_LINUX_COMMAND: swift package --disable-sandbox multi-node test
MATRIX_LINUX_5_9_ENABLED: false
MATRIX_LINUX_5_10_ENABLED: false
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
enable_macos_checks: true
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

integration-tests:
name: Integration tests
needs: construct-integration-tests-matrix
uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
name: "Integration tests"
matrix_string: '${{ needs.construct-integration-tests-matrix.outputs.integration-tests-matrix }}'

construct-dining-philosophers-matrix:
name: Construct dining philosophers matrix
runs-on: ubuntu-latest
outputs:
dining-philosophers-matrix: '${{ steps.generate-matrix.outputs.dining-philosophers-matrix }}'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- id: generate-matrix
run: echo "dining-philosophers-matrix=$(curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT"
env:
MATRIX_LINUX_SETUP_COMMAND: apt-get update -y && apt-get install -yq jq && git config --global --add safe.directory /swift-openapi-runtime
MATRIX_LINUX_COMMAND: swift run --package-path Samples SampleDiningPhilosophers
MATRIX_LINUX_5_9_ENABLED: false
MATRIX_LINUX_5_10_ENABLED: false
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
linux_build_command: "swift package --disable-sandbox multi-node test"
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"

dining-philosophers:
name: Sample dining philosophers
needs: construct-dining-philosophers-matrix
uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main
with:
name: "Sample dining philosophers"
matrix_string: '${{ needs.construct-dining-philosophers-matrix.outputs.dining-philosophers-matrix }}'

cxx-interop:
name: Cxx interop
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main
with:
linux_5_9_enabled: false
linux_5_10_enabled: false

macos-tests:
name: macOS tests
uses: apple/swift-nio/.github/workflows/macos_tests.yml@main
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
runner_pool: general
build_scheme: swift-distributed-actors-Package
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_windows_checks: false
linux_pre_build_command: "apt-get update -y && apt-get install -yq jq"
linux_build_command: "swift run --package-path Samples SampleDiningPhilosophers"
swift_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
swift_nightly_flags: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ if args.count >= 3 {
system.cluster.join(endpoint: Cluster.Endpoint(systemName: "System", host: host, port: port))
}

_Thread.sleep(.seconds(120))
try await Task.sleep(for: .milliseconds(120))
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ if args.count >= 4, let joinPort = Int(args[3]) {
system.cluster.join(host: joinHost, port: joinPort)
}

Thread.sleep(.seconds(120))
try await Task.sleep(for: .seconds(120))
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ final class DiningPhilosophers {
Philosopher(name: "Erik", leftFork: fork4, rightFork: fork5, actorSystem: system),
]

_Thread.sleep(duration)
try await Task.sleep(for: duration)
}
}
9 changes: 5 additions & 4 deletions Sources/DistributedCluster/Behaviors.swift
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,11 @@ extension _Behavior {
func receiveSignalAsync(
context: _ActorContext<Message>,
signal: _Signal,
handleSignal: @escaping @Sendable (
_ActorContext<Message>,
_Signal
) async throws -> _Behavior<Message>
handleSignal:
@escaping @Sendable (
_ActorContext<Message>,
_Signal
) async throws -> _Behavior<Message>
) -> _Behavior<Message> {
.setup { context in
receiveSignalAsync0(handleSignal, context: context, signal: signal)
Expand Down
2 changes: 1 addition & 1 deletion Tests/DistributedClusterTests/SerializationPoolTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ final class SerializationPoolTests: XCTestCase {
try! await self.system.shutdown().wait()
self.system = nil
self.testKit = nil
try! self.elg.syncShutdownGracefully()
try! await self.elg.shutdownGracefully()
self.el = nil
self.elg = nil
}
Expand Down
Loading