diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef45e0bd..2c923838 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,11 +26,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-latest] swift: ["5.10"] - include: - - os: windows-latest - swift: "5.6.3" steps: - uses: actions/checkout@v4 - name: Setup Node diff --git a/.github/workflows/stability.yml b/.github/workflows/stability.yml index fb3b979d..6cbdc889 100644 --- a/.github/workflows/stability.yml +++ b/.github/workflows/stability.yml @@ -5,12 +5,12 @@ on: - cron: '0 */12 * * *' jobs: - v1: - name: "v1: Swift ${{ matrix.swift }} on ${{ matrix.os }}" + v2: + name: "v2: Swift ${{ matrix.swift }} on ${{ matrix.os }}" runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-latest] swift: ["5.10"] steps: - uses: swift-actions/setup-swift@v2 @@ -24,7 +24,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-latest] swift: ["5.10"] steps: - uses: swift-actions/setup-swift@main diff --git a/src/gpg.ts b/src/gpg.ts index 8a69ad87..0c870e9b 100644 --- a/src/gpg.ts +++ b/src/gpg.ts @@ -15,9 +15,9 @@ export async function setupKeys() { await refreshKeys(); } -export async function verify(signaturePath: string, packagePath: string) { - core.debug("Verifying signature"); - await exec("gpg", ["--verify", signaturePath, packagePath]); +export async function verify(...paths: string[]) { + core.debug(`Verifying signature using ${paths.length} files`); + await exec("gpg", ["--verify", ...paths]); } export async function refreshKeys() { diff --git a/src/linux-install.ts b/src/linux-install.ts index e57bf185..f481f4f9 100644 --- a/src/linux-install.ts +++ b/src/linux-install.ts @@ -21,7 +21,7 @@ export async function install(version: string, system: System) { await setupKeys(); const swiftPkg = swiftPackage(version, system); - let { pkg, signature } = await download(swiftPkg); + const { pkg, signature } = await download(swiftPkg); await verify(signature, pkg); diff --git a/src/swift-versions.ts b/src/swift-versions.ts index 47aa35bd..e5ee5cc6 100644 --- a/src/swift-versions.ts +++ b/src/swift-versions.ts @@ -3,7 +3,7 @@ import * as core from "@actions/core"; import { System, OS } from "./os"; const VERSIONS_LIST: [string, OS[]][] = [ - ["5.10", [OS.MacOS, OS.Ubuntu]], + ["5.10", OS.all()], ["5.9.2", [OS.MacOS, OS.Ubuntu]], ["5.9.1", [OS.MacOS, OS.Ubuntu]], ["5.9", [OS.MacOS, OS.Ubuntu]], diff --git a/src/windows-install.ts b/src/windows-install.ts index 9e537697..c30d9d3f 100644 --- a/src/windows-install.ts +++ b/src/windows-install.ts @@ -23,8 +23,10 @@ export async function install(version: string, system: System) { await setupKeys(); - let { exe, signature } = await download(swiftPkg); - await verify(signature, exe); + const { exe } = await download(swiftPkg); + + // FIXME: It seems like Swift.org does not provide GPG signatures for Windows all builds. + //await verify(exe); const exePath = await toolCache.cacheFile( exe, @@ -71,7 +73,7 @@ export async function install(version: string, system: System) { path.join(swiftLibPath, "Swift-development", "bin"), path.join(swiftLibPath, "icu-67", "usr", "bin"), ]; - additionalPaths.forEach((value, index, array) => core.addPath(value)); + additionalPaths.forEach((value) => core.addPath(value)); core.debug(`Swift installed at "${swiftInstallPath}"`); await setupVsTools(swiftPkg); @@ -80,11 +82,8 @@ export async function install(version: string, system: System) { async function download({ url, name }: Package) { core.debug("Downloading Swift for windows"); - let [exe, signature] = await Promise.all([ - toolCache.downloadTool(url), - toolCache.downloadTool(`${url}.sig`), - ]); + const exe = await toolCache.downloadTool(url); core.debug("Swift download complete"); - return { exe, signature, name }; + return { exe, name }; }