Skip to content

Commit 892b611

Browse files
authored
[CI] Enable Windows CI (#77)
# Motivation We want to make sure our packages build on all supported platforms. # Modification This PR enabled the Windows CI. # Result Better test coverage in our package.
1 parent 8f3abb3 commit 892b611

File tree

5 files changed

+129
-40
lines changed

5 files changed

+129
-40
lines changed

.github/workflows/main.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Main
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
unit-tests:
9+
name: Unit tests
10+
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
11+
with:
12+
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
13+
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
14+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
15+
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
16+
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
17+
windows_6_0_enabled: true
18+
windows_nightly_6_0_enabled: true
19+
windows_nightly_main_enabled: true
20+
windows_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
21+
windows_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
22+
windows_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
23+
24+
benchmarks:
25+
name: Benchmarks
26+
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
27+
with:
28+
benchmark_package_path: "Benchmarks"
29+
30+
cxx-interop:
31+
name: Cxx interop
32+
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main

.github/workflows/pull_request.yml

+37-28
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,45 @@
11
name: PR
22

33
on:
4-
pull_request:
5-
types: [opened, reopened, synchronize]
4+
pull_request:
5+
types: [opened, reopened, synchronize]
66

77
jobs:
8-
soundness:
9-
name: Soundness
10-
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
11-
with:
12-
license_header_check_project_name: "SwiftASN1"
13-
unit-tests:
14-
name: Unit tests
15-
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
16-
with:
17-
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
18-
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
19-
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
20-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
21-
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
8+
soundness:
9+
name: Soundness
10+
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
11+
with:
12+
license_header_check_project_name: "SwiftASN1"
2213

23-
benchmarks:
24-
name: Benchmarks
25-
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
26-
with:
27-
benchmark_package_path: "Benchmarks"
14+
cmake-lists:
15+
name: Check cmake lists
16+
uses: apple/swift-nio/.github/workflows/swift_matrix.yml@main
17+
with:
18+
name: "Check cmake lists"
19+
matrix_linux_command: ./scripts/check-cmake-lists.sh
2820

29-
cxx-interop:
30-
name: Cxx interop
31-
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main
21+
unit-tests:
22+
name: Unit tests
23+
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
24+
with:
25+
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
26+
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
27+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
28+
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
29+
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
30+
windows_6_0_enabled: true
31+
windows_nightly_6_0_enabled: true
32+
windows_nightly_main_enabled: true
33+
windows_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
34+
windows_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
35+
windows_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
3236

33-
swift-6-language-mode:
34-
name: Swift 6 Language Mode
35-
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main
36-
if: false # Disabled for now.
37+
benchmarks:
38+
name: Benchmarks
39+
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
40+
with:
41+
benchmark_package_path: "Benchmarks"
42+
43+
cxx-interop:
44+
name: Cxx interop
45+
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main

.github/workflows/scheduled.yml

+27-12
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,32 @@
11
name: Scheduled
22

33
on:
4-
schedule:
5-
- cron: "0 8,20 * * *"
4+
schedule:
5+
- cron: "0 8,20 * * *"
66

77
jobs:
8-
unit-tests:
9-
name: Unit tests
10-
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
11-
with:
12-
linux_5_8_enabled: false
13-
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
14-
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
15-
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
16-
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
17-
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
8+
unit-tests:
9+
name: Unit tests
10+
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
11+
with:
12+
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
13+
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
14+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
15+
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
16+
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
17+
windows_6_0_enabled: true
18+
windows_nightly_6_0_enabled: true
19+
windows_nightly_main_enabled: true
20+
windows_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
21+
windows_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
22+
windows_nightly_main_arguments_override: "--explicit-target-dependency-import-check error -Xswiftc -require-explicit-sendable"
23+
24+
benchmarks:
25+
name: Benchmarks
26+
uses: apple/swift-nio/.github/workflows/benchmarks.yml@main
27+
with:
28+
benchmark_package_path: "Benchmarks"
29+
30+
cxx-interop:
31+
name: Cxx interop
32+
uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main

scripts/check-cmake-lists.sh

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
##===----------------------------------------------------------------------===##
3+
##
4+
## This source file is part of the SwiftASN1 open source project
5+
##
6+
## Copyright (c) 2024 Apple Inc. and the SwiftASN1 project authors
7+
## Licensed under Apache License v2.0
8+
##
9+
## See LICENSE.txt for license information
10+
## See CONTRIBUTORS.txt for the list of SwiftASN1 project authors
11+
##
12+
## SPDX-License-Identifier: Apache-2.0
13+
##
14+
##===----------------------------------------------------------------------===##
15+
16+
set -euo pipefail
17+
18+
log() { printf -- "** %s\n" "$*" >&2; }
19+
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
20+
fatal() { error "$@"; exit 1; }
21+
22+
log "Checking if the cmake files are up-to-date..."
23+
24+
here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
25+
FIRST_OUT="$(git status --porcelain)"
26+
_=$("$here"/update-cmake-lists.sh 2>&1)
27+
SECOND_OUT="$(git status --porcelain)"
28+
if [[ "$FIRST_OUT" != "$SECOND_OUT" ]]; then
29+
error "Changes in the cmake files detected. Please run the update-cmake-lists.sh script."
30+
exit 1
31+
fi
32+
33+
log "✅ cmake files are up-to-date."
File renamed without changes.

0 commit comments

Comments
 (0)