use gfortran-15 via FC environment variable on macos #160
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Windows-on-ARM | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| OPENBLAS_COMMIT: "v0.3.30-349-gf6df9beb" | |
| OPENBLAS_ROOT: "c:\\opt" | |
| # Preserve working directory for calls into bash | |
| # Without this, invoking bash will cd to the home directory | |
| CHERE_INVOKING: "yes" | |
| BASH_PATH: "C:\\Program Files\\Git\\bin\\bash.exe" | |
| PLAT: arm64 | |
| jobs: | |
| build: | |
| runs-on: windows-11-arm | |
| timeout-minutes: 90 | |
| strategy: | |
| matrix: | |
| INTERFACE64: ['1', '0'] | |
| env: | |
| INTERFACE64: ${{ matrix.INTERFACE64 }} | |
| steps: | |
| - uses: actions/checkout@v4.1.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.12 | |
| architecture: arm64 | |
| - name: Download and install LLVM installer | |
| run: | | |
| Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.8/LLVM-20.1.8-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe | |
| Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait | |
| echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| - name: Install CMake and Ninja for Win-ARM64 | |
| shell: pwsh | |
| run: | | |
| Invoke-WebRequest https://github.com/Kitware/CMake/releases/download/v3.29.4/cmake-3.29.4-windows-arm64.msi -OutFile cmake-arm64.msi | |
| Start-Process msiexec.exe -ArgumentList "/i cmake-arm64.msi /quiet /norestart" -Wait | |
| echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH | |
| Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-winarm64.zip -OutFile ninja-winarm64.zip | |
| Expand-Archive ninja-winarm64.zip -DestinationPath ninja | |
| Copy-Item ninja\ninja.exe -Destination "C:\Windows\System32" | |
| - name: Set env variables | |
| run: | | |
| if ( ${{ matrix.INTERFACE64 }} -eq "1" ) { | |
| echo "INTERFACE_BITS=64" >> $env:GITHUB_ENV | |
| } else { | |
| echo "INTERFACE_BITS=32" >> $env:GITHUB_ENV | |
| } | |
| - name: Build | |
| run: | | |
| git submodule update --init --recursive | |
| .\tools\build_steps_win_arm64.bat 64 ${env:INTERFACE_BITS} | |
| - name: Test ${{ matrix.INTERFACE_BITS }}-bit interface wheel | |
| run: | | |
| python -m pip install --no-index --find-links dist scipy_openblas${env:INTERFACE_BITS} | |
| python -m scipy_openblas${env:INTERFACE_BITS} | |
| python -c "import scipy_openblas${env:INTERFACE_BITS}; print(scipy_openblas${env:INTERFACE_BITS}.get_pkg_config())" | |
| - uses: actions/upload-artifact@v4.3.0 | |
| with: | |
| name: wheels-${{ env.PLAT }}-${{ env.INTERFACE64 }} | |
| path: dist/scipy_openblas*.whl | |
| - name: Install Anaconda client | |
| run: | | |
| # Rust installation needed for rpds-py. | |
| Invoke-WebRequest https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe -UseBasicParsing -Outfile rustup-init.exe | |
| .\rustup-init.exe -y | |
| $env:PATH="$env:PATH;$env:USERPROFILE\.cargo\bin" | |
| pip install anaconda-client | |
| - name: Upload | |
| # see https://github.com/marketplace/actions/setup-miniconda for why | |
| # `-el {0}` is required. | |
| shell: bash -el {0} | |
| env: | |
| ANACONDA_SCIENTIFIC_PYTHON_UPLOAD: ${{ secrets.ANACONDA_SCIENTIFIC_PYTHON_UPLOAD }} | |
| run: | | |
| source tools/upload_to_anaconda_staging.sh | |
| upload_wheels |