diff --git a/.github/workflows/schedule-swift-toolchain.yml b/.github/workflows/schedule-swift-toolchain.yml index 977e27c3..b196f327 100644 --- a/.github/workflows/schedule-swift-toolchain.yml +++ b/.github/workflows/schedule-swift-toolchain.yml @@ -10,6 +10,7 @@ on: jobs: call_development_snapshot: + if: false name: Development Snapshot uses: ./.github/workflows/build-toolchain.yml with: @@ -26,7 +27,7 @@ jobs: id-token: write call_development_snapshot_win_arm64: - if: false + if: true name: Development Snapshot on Windows/ARM64 uses: ./.github/workflows/build-toolchain.yml with: diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index 1d8bfb06..f4431bb7 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -401,7 +401,7 @@ jobs: ds2: # TODO: Build this on macOS or make an equivalent Mac-only job - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: inputs.build_os == 'Windows' && inputs.build_arch == 'amd64' needs: [ds2_tools] runs-on: ${{ inputs.default_build_runner }} @@ -938,7 +938,7 @@ jobs: release-tag-name: ${{ env.WORKAROUND_WINDOWS_ARM64_PINNED_BOOTSTRAP_TOOLCHAIN_RELEASE }} - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} @@ -1155,14 +1155,14 @@ jobs: variant: sccache - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} - name: Configure zlib run: | - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = "${{ steps.setup-ndk.outputs.ndk-path }}" if ( "${{ inputs.build_os }}" -eq "Windows" ) { $NDKPATH = cygpath -m $NDKPATH @@ -1247,14 +1247,14 @@ jobs: variant: sccache - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} - name: Configure curl run: | - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = "${{ steps.setup-ndk.outputs.ndk-path }}" if ( "${{ inputs.build_os }}" -eq "Windows" ) { $NDKPATH = cygpath -m $NDKPATH @@ -1411,14 +1411,14 @@ jobs: variant: sccache - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} - name: Configure libxml2 run: | - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = "${{ steps.setup-ndk.outputs.ndk-path }}" if ( "${{ inputs.build_os }}" -eq "Windows" ) { $NDKPATH = cygpath -m $NDKPATH @@ -1629,17 +1629,17 @@ jobs: # NOTE(compnerd): we execute unconditionally as we reference outputs - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} - name: Configure LLVM - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # NOTE: used by `matrix.cc` $CLANG_CL = "cl" - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -1662,13 +1662,13 @@ jobs: -D LLVM_ENABLE_ASSERTIONS=YES - name: Configure Swift Standard Library - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # NOTE: used by `matrix.cc` $CLANG_CL = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -1720,18 +1720,18 @@ jobs: -D SWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE=${{ github.workspace }}/SourceCache/swift-syntax ` -D SWIFT_PATH_TO_STRING_PROCESSING_SOURCE=${{ github.workspace }}/SourceCache/swift-experimental-string-processing - name: Build Swift Standard Library - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | Remove-Item env:\SDKROOT cmake --build ${{ github.workspace }}/BinaryCache/swift - name: Install Swift Standard Library - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | Remove-Item env:\SDKROOT cmake --build ${{ github.workspace }}/BinaryCache/swift --target install - uses: actions/upload-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: ${{ matrix.os }}-stdlib-${{ matrix.arch }} path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/${{ matrix.os }}.platform @@ -2013,17 +2013,17 @@ jobs: steps: - uses: actions/download-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: libxml2-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.libxml2_version }} path: ${{ github.workspace }}/BuildRoot/Library/libxml2-${{ inputs.libxml2_version }}/usr - uses: actions/download-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: curl-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.curl_version }} path: ${{ github.workspace }}/BuildRoot/Library/curl-${{ inputs.curl_version }}/usr - uses: actions/download-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: zlib-${{ matrix.os }}-${{ matrix.arch }}-${{ inputs.zlib_version }} path: ${{ github.workspace }}/BuildRoot/Library/zlib-${{ inputs.zlib_version }}/usr @@ -2034,7 +2034,7 @@ jobs: name: compilers-${{ inputs.build_arch }} path: ${{ github.workspace }}/BinaryCache/Library - uses: actions/download-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: ${{ matrix.os }}-stdlib-${{ matrix.arch }} path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform @@ -2123,19 +2123,19 @@ jobs: # NOTE(compnerd): we execute unconditionally as we reference outputs - uses: nttld/setup-ndk@v1 - if: inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} id: setup-ndk with: ndk-version: ${{ inputs.ANDROID_NDK_VERSION }} - name: Configure libdispatch - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -2178,18 +2178,18 @@ jobs: -D BUILD_TESTING=NO ` -D ENABLE_SWIFT=YES - name: Build libdispatch - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/libdispatch - name: Configure Foundation - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -2257,19 +2257,19 @@ jobs: -D ZLIB_LIBRARY=${{ github.workspace }}/BuildRoot/Library/zlib-${{ inputs.zlib_version }}/usr/lib/$LIBZ ` -D SwiftFoundation_MACRO=${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin - name: Build foundation - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/foundation # TODO(compnerd) correctly version XCTest - name: Configure xctest - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -2312,18 +2312,18 @@ jobs: -D Foundation_DIR=${{ github.workspace }}/BinaryCache/foundation/cmake/modules ` -D ENABLE_TESTING=NO - name: Build xctest - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/xctest - name: Configure Testing - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - if ( "${{ inputs.build_os }}" -ne "Windows" -or "${{ inputs.build_arch }}" -ne "arm64" ) { + if (-not ("${{ inputs.build_os }}" -eq "Windows" -and "${{ inputs.build_arch }}" -eq "arm64" )) { $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_NDK_FLAG = "-DCMAKE_ANDROID_NDK=$NDKPATH" $SWIFT_NDK_FLAG = "-DSWIFT_ANDROID_NDK_PATH=$NDKPATH" @@ -2365,30 +2365,30 @@ jobs: -D Foundation_DIR=${{ github.workspace }}/BinaryCache/foundation/cmake/modules ` -D SwiftTesting_MACRO=${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/TestingMacros.dll - name: Build Testing - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/testing - name: Install Testing - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/testing --target install - name: Install xctest - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/xctest --target install - name: Install foundation - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/foundation --target install - name: Install libdispatch - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} run: | cmake --build ${{ github.workspace }}/BinaryCache/libdispatch --target install - uses: actions/setup-python@v5 - uses: jannekem/run-python-script-action@v1 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: script: | import os @@ -2406,7 +2406,7 @@ jobs: plistlib.dump({ 'DefaultProperties': { 'DEFAULT_USE_RUNTIME': 'MD' } }, plist) - uses: actions/upload-artifact@v4 - if: matrix.os != 'Android' || inputs.build_os != 'Windows' || inputs.build_arch != 'arm64' + if: ${{ !(matrix.os == 'Android' && inputs.build_os == 'Windows' && inputs.build_arch == 'arm64') }} with: name: ${{ matrix.os }}-sdk-${{ matrix.arch }} path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/${{ matrix.os }}.platform