Skip to content

Commit 034d28f

Browse files
committed
GHA: setup builds for swift-testing
Introduce a build of swift-testing in the SDK as that is now distributed as part of the SDKs upstream. This allows us to have parity with the official builds.
1 parent 0463388 commit 034d28f

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

.github/workflows/build-toolchain.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ jobs:
135135
swift_revision: ${{ steps.context.outputs.swift_revision }}
136136
swift_syntax_revision: ${{ steps.context.outputs.swift_syntax_revision }}
137137
swift_system_revision: ${{ steps.context.outputs.swift_system_revision }}
138+
swift_testing_revision: ${{ steps.context.outputs.swift_testing_revision }}
138139
swift_toolchain_sqlite_revision: ${{ steps.context.outputs.swift_toolchain_sqlite_revision }}
139140
swift_toolchain_sqlite_version: ${{ steps.context.outputs.swift_toolchain_sqlite_version }}
140141
swift_tools_support_core_revision: ${{ steps.context.outputs.swift_tools_support_core_revision }}
@@ -202,6 +203,7 @@ jobs:
202203
swift_package_manager_revision=refs/tags/${{ inputs.swift_tag }}
203204
swift_syntax_revision=refs/tags/${{ inputs.swift_tag }}
204205
swift_system_revision=refs/tags/1.3.0
206+
swift_testing_revision=refs/heads/main
205207
swift_toolchain_sqlite_revision=refs/tags/main
206208
swift_tools_support_core_revision=refs/tags/${{ inputs.swift_tag }}
207209
curl_revision=refs/tags/curl-8_5_0
@@ -308,6 +310,7 @@ jobs:
308310
swift_revision: ${{ needs.context.outputs.swift_revision }}
309311
swift_syntax_revision: ${{ needs.context.outputs.swift_syntax_revision }}
310312
swift_system_revision: ${{ needs.context.outputs.swift_system_revision }}
313+
swift_testing_revision: ${{ needs.context.outputs.swift_testing_revision }}
311314
swift_toolchain_sqlite_revision: ${{ needs.context.outputs.swift_toolchain_sqlite_revision }}
312315
swift_toolchain_sqlite_version: ${{ needs.context.outputs.swift_toolchain_sqlite_version }}
313316
swift_tools_support_core_revision: ${{ needs.context.outputs.swift_tools_support_core_revision }}

.github/workflows/swift-toolchain.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ on:
111111
required: true
112112
type: string
113113

114+
swift_testing_revision:
115+
required: true
116+
type: string
117+
114118
swift_toolchain_sqlite_revision:
115119
required: true
116120
type: string
@@ -1506,6 +1510,12 @@ jobs:
15061510
ref: ${{ inputs.swift_foundation_revision }}
15071511
path: ${{ github.workspace }}/SourceCache/swift-foundation
15081512
show-progress: false
1513+
- uses: actions/checkout@v4
1514+
with:
1515+
repository: swiftlang/swift-testing
1516+
ref: ${{ inputs.swift_testing_revision }}
1517+
path: ${{ github.workspace }}/SourceCache/swift-testing
1518+
show-progress: false
15091519

15101520
# NOTE(compnerd): we execute unconditionally as we use CMake from VSDevEnv
15111521
- uses: compnerd/gha-setup-vsdevenv@main
@@ -1544,8 +1554,29 @@ jobs:
15441554
- name: Build Foundation Macros
15451555
run: cmake --build ${{ github.workspace }}/BinaryCache/swift-foundation-macros
15461556

1557+
- name: Configure Testing Macros
1558+
run: |
1559+
$WINDOWS_VFS_OVERLAY = cygpath -m ${{ github.workspace }}/BinaryCache/swift/stdlib/windows-vfs-overlay.yaml
1560+
$SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe
1561+
1562+
cmake -B ${{ github.workspace }}/BinaryCache/swift-testing-macros `
1563+
-D CMAKE_BUILD_TYPE=Release `
1564+
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr `
1565+
-D CMAKE_Swift_COMPILER=${SWIFTC} `
1566+
-D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} `
1567+
-D CMAKE_Swift_FLAGS="-resource-dir ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk/usr/lib/swift -L${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk/usr/lib/swift/windows -vfsoverlay ${WINDOWS_VFS_OVERLAY} -strict-implicit-module-context -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules ${{ inputs.CMAKE_Swift_FLAGS }}" `
1568+
-D CMAKE_SYSTEM_NAME=Windows `
1569+
-D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} `
1570+
-G Ninja `
1571+
-S ${{ github.workspace }}/SourceCache/swift-testing/Sources/TestingMacros `
1572+
-D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules
1573+
- name: Build Testing Macros
1574+
run: cmake --build ${{ github.workspace }}/BinaryCache/swift-testing-macros
1575+
15471576
- name: Install Foundation Macros
15481577
run: cmake --build ${{ github.workspace }}/BinaryCache/swift-foundation-macros --target install
1578+
- name: Install Testing Macros
1579+
run: cmake --build ${{ github.workspace }}/BinaryCache/swift-testing-macros --target install
15491580

15501581
- name: Upload macros
15511582
uses: actions/upload-artifact@v4
@@ -1700,6 +1731,11 @@ jobs:
17001731
with:
17011732
name: compilers-amd64
17021733
path: ${{ github.workspace }}/BinaryCache/Library
1734+
- name: Download swift-syntax
1735+
uses: actions/download-artifact@v4
1736+
with:
1737+
name: swift-syntax-${{ matrix.arch }}
1738+
path: ${{ github.workspace }}/BinaryCache/swift-syntax
17031739
- uses: actions/download-artifact@v4
17041740
with:
17051741
name: ${{ matrix.os }}-stdlib-${{ matrix.arch }}
@@ -1777,6 +1813,12 @@ jobs:
17771813
ref: ${{ inputs.swift_corelibs_xctest_revision }}
17781814
path: ${{ github.workspace }}/SourceCache/swift-corelibs-xctest
17791815
show-progress: false
1816+
- uses: actions/checkout@v4
1817+
with:
1818+
repository: swiftlang/swift-testing
1819+
ref: ${{ inputs.swift_testing_revision }}
1820+
path: ${{ github.workspace }}/SourceCache/swift-testing
1821+
show-progress: false
17801822

17811823
- run: |
17821824
$RTLPath = cygpath -w ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk/usr/bin
@@ -1973,6 +2015,53 @@ jobs:
19732015
run: |
19742016
cmake --build ${{ github.workspace }}/BinaryCache/xctest
19752017
2018+
- name: extract swift-syntax
2019+
run: |
2020+
$module = "${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules/SwiftSyntaxConfig.cmake"
2021+
$bindir = cygpath -m ${{ github.workspace }}/BinaryCache/swift-syntax
2022+
(Get-Content $module).Replace('<BINARY_DIR>', "${bindir}") | Set-Content $module
2023+
2024+
- name: Configure Testing
2025+
run: |
2026+
# Workaround CMake 3.20 issue
2027+
$CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe
2028+
$SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe
2029+
2030+
$NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }}
2031+
2032+
$WINDOWS_VFS_OVERLAY = cygpath -m ${{ github.workspace }}/BinaryCache/swift/stdlib/windows-vfs-overlay.yaml
2033+
$OVERLAY_FLAGS = if ("${{ matrix.os }}" -eq "Windows") {
2034+
"-vfsoverlay ${WINDOWS_VFS_OVERLAY} -strict-implicit-module-context -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules"
2035+
} else {
2036+
""
2037+
}
2038+
2039+
$CMAKE_CPU = if ("${{ matrix.cpu }}" -eq "armv7") { "armv7-a" } else { "${{ matrix.cpu }}" }
2040+
2041+
cmake -B ${{ github.workspace }}/BinaryCache/testing `
2042+
-D BUILD_SHARED_LIBS=YES `
2043+
-D CMAKE_BUILD_TYPE=Release `
2044+
-D CMAKE_BUILD_WITH_INSTALL_RPATH=YES `
2045+
-D CMAKE_Swift_COMPILER=${SWIFTC} `
2046+
-D CMAKE_Swift_FLAGS="-resource-dir ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/lib/swift -L${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/lib/swift/${{ matrix.os }} ${OVERLAY_FLAGS} ${{ matrix.swiftflags }}" `
2047+
-D CMAKE_Swift_FLAGS_RELEASE="-O" `
2048+
-D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
2049+
-D CMAKE_SYSTEM_PROCESSOR=${CMAKE_CPU} `
2050+
${{ matrix.linker_flags }} `
2051+
${{ matrix.extra_flags }} `
2052+
-D CMAKE_ANDROID_NDK=${NDKPATH} `
2053+
-D SWIFT_ANDROID_NDK_PATH=${NDKPATH} `
2054+
-G Ninja `
2055+
-S ${{ github.workspace }}/SourceCache/swift-testing `
2056+
-D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules `
2057+
-D SwiftTesting_MACRO=${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/SwiftTesting.dll
2058+
- name: Build Testing
2059+
run: |
2060+
cmake --build ${{ github.workspace }}/BinaryCache/testing
2061+
2062+
- name: Install Testing
2063+
run: |
2064+
cmake --build ${{ github.workspace }}/BinaryCache/testing --target install
19762065
- name: Install xctest
19772066
run: |
19782067
cmake --build ${{ github.workspace }}/BinaryCache/xctest --target install

0 commit comments

Comments
 (0)