also looking at this
fix(ci): unblock the three failing native lifecycle legs
#37
4 files
+130
-20
| @@ -30,18 +30,19 @@ jobs: | ||
| 30 | 30 | fail-fast: false |
| 31 | 31 | matrix: |
| 32 | 32 | include: |
| 33 | # `name` is the whole identity of a leg: it is the evidence label the | |
| 34 | # script writes under, the artifact name, and the path the upload | |
| 35 | # reads back. It used to be two fields, `name` and `report`, and they | |
| 36 | # disagreed on Windows — the script wrote windows-x64/ while the | |
| 37 | # upload looked in win32-x64/ and failed with "No files were found". | |
| 33 | 38 | - os: macos-15 |
| 34 | 39 | name: darwin-arm64 |
| 35 | report: darwin-arm64 | |
| 36 | 40 | - os: macos-15-intel |
| 37 | 41 | name: darwin-x64 |
| 38 | report: darwin-x64 | |
| 39 | 42 | - os: ubuntu-24.04 |
| 40 | 43 | name: linux-x64 |
| 41 | report: linux-x64 | |
| 42 | 44 | - os: windows-2025 |
| 43 | 45 | name: windows-x64 |
| 44 | report: win32-x64 | |
| 45 | 46 | runs-on: ${{ matrix.os }} |
| 46 | 47 | timeout-minutes: 30 |
| 47 | 48 | env: |
| @@ -60,9 +61,28 @@ jobs: | ||
| 60 | 61 | if: runner.os == 'Windows' |
| 61 | 62 | shell: pwsh |
| 62 | 63 | run: | |
| 63 | choco install wixtoolset --version=3.14.1 --yes --no-progress | |
| 64 | $bin = Get-ChildItem "${env:ProgramFiles(x86)}\WiX Toolset v3*\bin" -Directory | Select-Object -First 1 | |
| 65 | if (-not $bin) { throw 'WiX Toolset bin directory not found' } | |
| 64 | # The windows-2025 image already ships WiX v3 — 3.14.1.20250415 as of | |
| 65 | # this writing — and `choco install --version=3.14.1` is a *downgrade* | |
| 66 | # against it, which choco refuses: | |
| 67 | # | |
| 68 | # A newer version of wixtoolset (v3.14.1.20250415) is already installed. | |
| 69 | # Chocolatey installed 0/1 packages. 1 packages failed. | |
| 70 | # | |
| 71 | # So the step failed before it ever looked for the toolset it needed, | |
| 72 | # and every Windows lifecycle run died at setup. Look first, install | |
| 73 | # only when it is genuinely absent, and take whatever v3 the image | |
| 74 | # provides rather than pinning under it. | |
| 75 | $wixBin = { | |
| 76 | Get-ChildItem "${env:ProgramFiles(x86)}\WiX Toolset v3*\bin" -Directory -ErrorAction SilentlyContinue | | |
| 77 | Sort-Object Name -Descending | Select-Object -First 1 | |
| 78 | } | |
| 79 | $bin = & $wixBin | |
| 80 | if (-not $bin) { | |
| 81 | choco install wixtoolset --version=3.14.1 --yes --no-progress | |
| 82 | $bin = & $wixBin | |
| 83 | } | |
| 84 | if (-not $bin) { throw 'WiX Toolset v3 bin directory not found' } | |
| 85 | Write-Host "Using WiX at $($bin.FullName)" | |
| 66 | 86 | $bin.FullName | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append |
| 67 | 87 | |
| 68 | 88 | - name: Test packaging API |
renamed throughout · 9 hidden lines
| @@ -77,7 +97,7 @@ jobs: renamed throughout | ||
| 77 | 97 | with: |
| 78 | 98 | name: native-lifecycle-${{ matrix.name }} |
| 79 | 99 | path: | |
| 80 | artifacts/native-lifecycle/${{ matrix.report }}/report.json | |
| 81 | artifacts/native-lifecycle/${{ matrix.report }}/work/packages-*/** | |
| 100 | artifacts/native-lifecycle/${{ matrix.name }}/report.json | |
| 101 | artifacts/native-lifecycle/${{ matrix.name }}/work/packages-*/** | |
| 82 | 102 | if-no-files-found: error |
| 83 | 103 | retention-days: 90 |