From 073bbfcf423023b71077136d4a5a96c1b3a0b1f8 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 30 Oct 2025 22:28:03 -0700 Subject: [PATCH 1/2] GHA: wire up swift-tools-protocols This new dependency abstracts out the tooling protocol (i.e. BSP, LSP, etc). Add the build before we must scramble. --- .github/workflows/build-toolchain.yml | 4 +++ .github/workflows/swift-toolchain.yml | 37 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index 85c2c2ec9..8585d7161 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -210,6 +210,7 @@ jobs: swift_testing_revision: ${{ steps.context.outputs.swift_testing_revision }} swift_toolchain_sqlite_revision: ${{ steps.context.outputs.swift_toolchain_sqlite_revision }} swift_toolchain_sqlite_version: ${{ steps.context.outputs.swift_toolchain_sqlite_version }} + swift_tools_protocols_revision: ${{ steps.context.outputs.swift_tools_protocols_revision }} swift_tools_support_core_revision: ${{ steps.context.outputs.swift_tools_support_core_revision }} zlib_revision: ${{ steps.context.outputs.zlib_revision }} zlib_version: ${{ steps.context.outputs.zlib_version }} @@ -292,6 +293,7 @@ jobs: swift_system_revision=refs/tags/1.3.0 swift_testing_revision=refs/heads/main swift_toolchain_sqlite_revision=refs/tags/1.0.1 + swift_tools_protocols_revision=refs/tags/0.0.2 swift_tools_support_core_revision=refs/tags/${{ inputs.swift_tag }} curl_revision=refs/tags/curl-8_9_1 ds2_revision=refs/tags/nightly-2024-11-07 @@ -623,6 +625,7 @@ jobs: swift_testing_revision: ${{ needs.context.outputs.swift_testing_revision }} swift_toolchain_sqlite_revision: ${{ needs.context.outputs.swift_toolchain_sqlite_revision }} swift_toolchain_sqlite_version: ${{ needs.context.outputs.swift_toolchain_sqlite_version }} + swift_tools_protocols_revision: ${{ needs.context.outputs.swift_tools_protocols_revision }} swift_tools_support_core_revision: ${{ needs.context.outputs.swift_tools_support_core_revision }} zlib_revision: ${{ needs.context.outputs.zlib_revision }} zlib_version: ${{ needs.context.outputs.zlib_version }} @@ -709,6 +712,7 @@ jobs: swift_testing_revision: ${{ needs.context.outputs.swift_testing_revision }} swift_toolchain_sqlite_revision: ${{ needs.context.outputs.swift_toolchain_sqlite_revision }} swift_toolchain_sqlite_version: ${{ needs.context.outputs.swift_toolchain_sqlite_version }} + swift_tools_protocols_revision: ${{ needs.context.outputs.swift_tools_protocols_revision }} swift_tools_support_core_revision: ${{ needs.context.outputs.swift_tools_support_core_revision }} zlib_revision: ${{ needs.context.outputs.zlib_revision }} zlib_version: ${{ needs.context.outputs.zlib_version }} diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index 161bca86d..6b48d00e5 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -179,6 +179,10 @@ on: required: true type: string + swift_tools_protocols_revision: + required: true + type: string + swift_tools_support_core_revision: required: true type: string @@ -3319,6 +3323,11 @@ jobs: ref: ${{ inputs.swift_markdown_revision }} path: ${{ github.workspace }}/SourceCache/swift-markdown show-progress: false + - uses: actions/checkout@v4.2.2 + with: + repository: swiftlang/swift-tools-protocols + ref: ${{ inputs.swift_tools_protocols_revision }} + path: ${{ github.workspace }}/SourceCache/swift-tools-protocols - uses: actions/checkout@v4.2.2 with: repository: swiftlang/swift-build @@ -3642,6 +3651,30 @@ jobs: - name: Build swift-certificates run: cmake --build ${{ github.workspace }}/BinaryCache/swift-certificates + - name: Configure swift-tools-protocols + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-tools-protocols + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-tools-protocols + bin-dir: ${{ github.workspace }}/BinaryCache/swift-tools-protocols + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } + - name: Build swift-tools-protocols + run: cmake --build ${{ github.workspace }}/BinaryCache/swift-tools-protocols + - name: Configure swift-build uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project with: @@ -3670,6 +3703,7 @@ jobs: 'SQLite3_INCLUDE_DIR' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; 'SQLite3_LIBRARY' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; 'CMAKE_Swift_FLAGS' = "${{ matrix.arch == 'arm64' && '-use-ld=lld-link' || '' }}"; + 'SwiftToolsProtocols_DIR' = "${{ github.workspace }}/BinaryCache/swift-tools-protocols/cmake/modules"; } - name: Build swift-build run: cmake --build ${{ github.workspace }}/BinaryCache/swift-build @@ -3714,6 +3748,7 @@ jobs: 'SwiftSyntax_DIR' = "${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules" 'SQLite3_INCLUDE_DIR' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; 'SQLite3_LIBRARY' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; + 'SwiftToolsProtocols_DIR' = "${{ github.workspace }}/BinaryCache/swift-tools-protocols/cmake/modules"; } - name: Build swift-package-manager run: cmake --build ${{ github.workspace }}/BinaryCache/swift-package-manager @@ -3873,6 +3908,8 @@ jobs: run: cmake --build ${{ github.workspace }}/BinaryCache/swift-tools-support-core --target install - name: Install swift-driver run: cmake --build ${{ github.workspace }}/BinaryCache/swift-driver --target install + - name: Install swift-tools-protocols + run: cmake --build ${{ github.workspace }}/BinaryCache/swift-tools-protocols --target install - name: Install swift-build run: cmake --build ${{ github.workspace }}/BinaryCache/swift-build --target install - name: Install swift-subprocess From 9b9ac1e716c88d493cc54eccd7c73d52166dcd34 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Wed, 5 Nov 2025 09:07:13 -0800 Subject: [PATCH 2/2] Update .github/workflows/swift-toolchain.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/swift-toolchain.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index 6b48d00e5..88945531f 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -3328,6 +3328,7 @@ jobs: repository: swiftlang/swift-tools-protocols ref: ${{ inputs.swift_tools_protocols_revision }} path: ${{ github.workspace }}/SourceCache/swift-tools-protocols + show-progress: false - uses: actions/checkout@v4.2.2 with: repository: swiftlang/swift-build