Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
000ad64
Windows: fetch oneMKL through vcpkg manifest mode; CI lane for the VS…
mmelnich Aug 10, 2026
6265fac
Replace vcpkg with a direct pinned fetch of Intel's oneMKL NuGet pack…
mmelnich Aug 10, 2026
6a0aaa7
Windows: backend selection (mkl/openblas/custom), oneAPI auto-discove…
mmelnich Aug 10, 2026
0784089
Windows docs: dedicated INSTALL_WINDOWS.md; INSTALL.md/INSTALL_SCRIPT…
mmelnich Aug 10, 2026
54991c6
Windows CI: honor /openmp:llvm in RandLAPACK's own OpenMP lookup; fix…
mmelnich Aug 10, 2026
0547732
Windows CI: drop the temporary OpenMP diagnostic; record its finding …
mmelnich Aug 11, 2026
e8b817b
INSTALL_WINDOWS.md: troubleshooting note on conda DLL shadowing and c…
mmelnich Aug 11, 2026
e3d15bb
Windows: reject non-x64 toolchains, make backend provisioning explicit
mmelnich Aug 12, 2026
30d9cc4
Windows CI: fix guard steps' exit code, harden downloads against tran…
mmelnich Aug 12, 2026
f42060e
Windows: audit fixes -- honor -NoDownload everywhere, enable OpenMP, …
mmelnich Aug 12, 2026
d29944d
Windows: fix BLAS++ space-in-path failure; pull BLAS++/LAPACK++ from …
mmelnich Aug 12, 2026
0224ceb
Windows: drop a dead ctest exclusion copied from the Linux lanes
mmelnich Aug 12, 2026
64b03e0
Windows: reuse dependencies only when their provenance matches
mmelnich Aug 12, 2026
9d36ba2
INSTALL_WINDOWS.md: state exactly which dependency versions the insta…
mmelnich Aug 12, 2026
c5aaf05
Windows deps: move oneMKL and GoogleTest to the newest releases, stil…
mmelnich Aug 12, 2026
57c6bc8
INSTALL_WINDOWS.md: state the toolchain contract instead of prescribi…
mmelnich Aug 12, 2026
e3c57b4
Trim comment and documentation bloat; fix two stale claims and a leak…
mmelnich Aug 12, 2026
f37ef42
INSTALL_WINDOWS.md: document the oneMKL prompt again, in section 4
mmelnich Aug 12, 2026
0190e9a
CI: stop running every job twice, and supersede in-flight pull-reques…
mmelnich Aug 12, 2026
e756c0c
Qualify upstream PR references so they do not link to this repository
mmelnich Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 39 additions & 16 deletions .github/actions/setup-randlapack-deps-windows/action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
name: setup-randlapack-deps-windows
description: >
Builds/restores RandLAPACK's native Windows dependencies (oneMKL via vcpkg,
GoogleTest, Random123, BLAS++, LAPACK++) and exports their locations as
environment variables (MKLROOT, googletest_PREFIX, Random123_DIR, blaspp_DIR,
lapackpp_DIR). Requires an initialized MSVC environment (ilammy/msvc-dev-cmd).
Builds/restores RandLAPACK's native Windows dependencies (a BLAS/LAPACK
backend -- oneMKL from Intel's NuGet packages or OpenBLAS release binaries --
plus GoogleTest, Random123, BLAS++, LAPACK++) and exports their locations as
environment variables (RANDNLA_BLAS_BACKEND, RANDNLA_BLAS_BIN, MKLROOT for
mkl, googletest_PREFIX, Random123_DIR, blaspp_DIR, lapackpp_DIR). Requires an
initialized MSVC environment (ilammy/msvc-dev-cmd).

inputs:
blas-backend:
description: "BLAS/LAPACK backend for the dependency stack: mkl or openblas."
required: false
default: "mkl"
sanitize-address:
description: Build an AddressSanitizer-instrumented GoogleTest.
required: false
Expand All @@ -14,50 +20,67 @@ inputs:
runs:
using: composite
steps:
# Caches live beside the workspace, keyed on the setup script so any recipe
# change invalidates them.
- name: cache oneMKL (vcpkg)
# Cache keys use MANUAL revision literals (-r<N>), bumped here whenever
# the corresponding recipe in setup.ps1 changes. Do NOT key on
# hashFiles(): it resolves paths relative to GITHUB_WORKSPACE, and the
# install-script workflow checks this repo out under RandLAPACK\, where
# the glob matches nothing and hashFiles() silently returns "" -- the two
# workflows then read/write DIFFERENT caches while appearing to share.
- name: cache oneMKL (NuGet)
if: inputs.blas-backend == 'mkl'
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\onemkl-2025.2.0.627
key: windows-nuget-intel-mkl-2026.1.0.226-r1

- name: cache OpenBLAS (release binaries)
if: inputs.blas-backend == 'openblas'
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\vcpkg-installed
key: windows-vcpkg-intel-mkl-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
path: ${{ github.workspace }}\..\windows-deps\openblas-0.3.34
key: windows-openblas-0.3.34-r1

- name: cache GoogleTest
if: inputs.sanitize-address != 'true'
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\googletest-install
key: windows-msvc-googletest-1.17.0-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
key: windows-msvc-googletest-1.18.0-ninja-r1

- name: cache GoogleTest (ASan)
if: inputs.sanitize-address == 'true'
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\googletest-asan-install
key: windows-msvc-googletest-asan-1.17.0-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
key: windows-msvc-googletest-asan-1.18.0-ninja-r1

- name: cache Random123
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\Random123-install
key: windows-random123-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
key: windows-random123-1.14.0-r1

- name: cache BLAS++
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\blaspp-install
key: windows-msvc-blaspp-remove-symv-debug-print-ilp64-sequential-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
path: ${{ github.workspace }}\..\windows-deps\blaspp-${{ inputs.blas-backend }}-install
key: windows-msvc-blaspp-upstream-3057185-${{ inputs.blas-backend }}-ninja-r2

- name: cache LAPACK++
uses: actions/cache@v4
with:
path: ${{ github.workspace }}\..\windows-deps\lapackpp-install
key: windows-msvc-lapackpp-msvc-direct-includes-ilp64-sequential-1-${{ hashFiles('.github/actions/setup-randlapack-deps-windows/setup.ps1') }}
path: ${{ github.workspace }}\..\windows-deps\lapackpp-${{ inputs.blas-backend }}-install
key: windows-msvc-lapackpp-upstream-40b9d0d-${{ inputs.blas-backend }}-ninja-r2

- name: build missing dependencies
shell: pwsh
run: |
$sanitizeAddress = '${{ inputs.sanitize-address }}' -eq 'true'
# -Yes: never prompt. Prompts are already skipped when stdin is not
# a terminal, but stating it makes the intent explicit and survives
# any future change to that detection.
& "$env:GITHUB_ACTION_PATH/setup.ps1" `
-DependencyRoot "${env:GITHUB_WORKSPACE}\..\windows-deps" `
-Backend '${{ inputs.blas-backend }}' `
-Yes `
-SanitizeAddress:$sanitizeAddress
Loading
Loading