Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
e2e2b3d
[CI] Compile Uno with HiGHS
amontoison Aug 1, 2025
fe6239a
Put paths in quote on Windows
amontoison Aug 1, 2025
ac140b0
Put paths in quote on Windows
amontoison Aug 1, 2025
a201db0
Put paths in quote on Windows
amontoison Aug 1, 2025
55dfdfb
Updated build-windows.yml
cvanaret Aug 28, 2025
850e0af
Removed ""
cvanaret Aug 28, 2025
aca9010
Fixed build-windows.yml
cvanaret Aug 28, 2025
d3a9c33
Trying a different path for highs in build-macos.yml
cvanaret Aug 28, 2025
3bb46f7
Fixed path to highs, temporarily removed blas and lapack
cvanaret Aug 28, 2025
e898b66
Fixed path in build-macos.yml and unit-tests-linux.yml, removed blas …
cvanaret Aug 28, 2025
ae9288e
Fixed unit-tests-linux.yml
cvanaret Aug 28, 2025
c52f0c4
Replaced GCC with Clang in build-macos.yml
cvanaret Aug 28, 2025
d4027a5
Reverted to GCC
cvanaret Aug 28, 2025
6612420
Trying different path for HIGHS_DIR (had something similar when Sven …
cvanaret Oct 8, 2025
1c00c61
Nope. Reverting
cvanaret Oct 8, 2025
d699e2c
build-macos.yml: trying on macOS arm64 with Clang
cvanaret Oct 16, 2025
bc47098
build-macos.yml: set Clang as C/C++ compiler
cvanaret Oct 16, 2025
2608427
build-macos.yml: fixed typo
cvanaret Oct 16, 2025
4032557
build-macos.yml: trying without MUMPS
cvanaret Oct 16, 2025
38584fa
build-macos.yml: need macOS 14 for Fortran action
cvanaret Oct 17, 2025
befc140
build-macos.yml: set explicit Fortran compiler
cvanaret Oct 17, 2025
412323d
Trying lfortran
cvanaret Oct 17, 2025
ff9b17c
Trying explicit lfortran command
cvanaret Oct 17, 2025
ecd6b48
Trying intel-classic (ifort)
cvanaret Oct 17, 2025
fd15277
Trying with GCC 15......
cvanaret Oct 17, 2025
f8eca9d
Removed BQPD
cvanaret Oct 17, 2025
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
36 changes: 12 additions & 24 deletions .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@ jobs:
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-14]
architecture: [x64, arm64]
compiler: [gcc]
architecture: [arm64]
compiler: [clang]

steps:
- name: Checkout repository
Expand All @@ -39,40 +40,27 @@ jobs:
- name: Download dependencies
shell: bash
run: |
VERSION_BQPD="1.0.0"
VERSION_MUMPS="5.8.0"
VERSION_HIGHS="1.11.0"
if [[ "${{matrix.architecture}}" == "x64" ]]; then
PLATFORM="x86_64-apple-darwin"
else
PLATFORM="aarch64-apple-darwin"
fi
wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz
mkdir deps
tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps

- name: Install Fortran compiler
uses: fortran-lang/setup-fortran@main
with:
compiler: 'gcc'
version: '13'
mkdir deps/highs
tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: |
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DMUMPS_INCLUDE_DIR=${{github.workspace}}/deps/include \
-DMETIS_INCLUDE_DIR=${{github.workspace}}/deps/include \
-DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \
-DMETIS_LIBRARY=${{github.workspace}}/deps/lib/libmetis.a \
-DMUMPS_LIBRARY=${{github.workspace}}/deps/lib/libdmumps.a \
-DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \
-DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \
-DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \
-DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \
-DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \
-DBUILD_STATIC_LIBS=ON \
-DBUILD_SHARED_LIBS=ON .

- name: Build
# Build your program with the given configuration
Expand Down
24 changes: 14 additions & 10 deletions .github/workflows/build-msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
run: |
VERSION_BQPD="1.0.0"
VERSION_MUMPS="5.8.0"
VERSION_HIGHS="1.11.0"
if [[ "${{matrix.architecture}}" == "x64" ]]; then
PLATFORM="x86_64-w64-mingw32"
else
Expand All @@ -51,9 +52,11 @@ jobs:
choco install wget
wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz
mkdir deps
tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps

- name: Install Fortran compiler
uses: fortran-lang/setup-fortran@main
Expand All @@ -70,16 +73,17 @@ jobs:
-DCMAKE_C_COMPILER=cl ^
-DCMAKE_CXX_COMPILER=cl ^
-DCMAKE_Fortran_COMPILER=ifx ^
-DMUMPS_INCLUDE_DIR=${{github.workspace}}\deps\include ^
-DMETIS_INCLUDE_DIR=${{github.workspace}}\deps\include ^
-DBQPD=${{github.workspace}}\deps\lib\libbqpd.a ^
-DMETIS_LIBRARY=${{github.workspace}}\deps\lib\libmetis.a ^
-DMUMPS_LIBRARY=${{github.workspace}}\deps\lib\libdmumps.a ^
-DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^
-DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^
-DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^
-DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^
-DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^
-DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^
-DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^
-DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^
-DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^
-DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^
-DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^
-DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^
-DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^
-DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^
-DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^
-DHIGHS_DIR="${{github.workspace}}\deps" ^
-DBUILD_STATIC_LIBS=ON ^
-DBUILD_SHARED_LIBS=OFF .
) else (
Expand Down
18 changes: 15 additions & 3 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jobs:
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest]
architecture: [x64]
Expand All @@ -40,13 +41,21 @@ jobs:
run: |
VERSION_BQPD="1.0.0"
VERSION_MUMPS="5.8.0"
PLATFORM="x86_64-w64-mingw32"
VERSION_HIGHS="1.11.0"
if [[ "${{matrix.architecture}}" == "x64" ]]; then
PLATFORM="x86_64-w64-mingw32"
else
PLATFORM="i686-w64-mingw32"
fi
choco install wget
wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz
mkdir deps
mkdir deps/highs
tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs

- name: add MinGW64 directory to path
run: echo "C:\tools\msys64\mingw64\bin" >> "$GITHUB_PATH"
Expand All @@ -65,9 +74,12 @@ jobs:
-DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^
-DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^
-DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^
-DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^
-DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^
-DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a .
-DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^
-DBUILD_STATIC_LIBS=ON ^
-DBUILD_SHARED_LIBS=ON .

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4
30 changes: 23 additions & 7 deletions .github/workflows/unit-tests-linux.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: Unit tests on Linux
name: Unit tests on Ubuntu

on:
push:
Expand Down Expand Up @@ -33,21 +33,36 @@ jobs:

steps:
- uses: actions/checkout@v4
- uses: Bacondish2023/setup-googletest@v1
with:
tag: v1.14.0

- name: Install googletest
run: |
sudo apt-get install -y libgtest-dev cmake
mkdir -p $HOME/build
cd $HOME/build
sudo cmake /usr/src/googletest/googletest
sudo make
sudo cp lib/libgtest* /usr/lib/
cd ..
sudo rm -rf build
sudo mkdir /usr/local/lib/googletest
sudo ln -s /usr/lib/libgtest.a /usr/local/lib/googletest/libgtest.a
sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/googletest/libgtest_main.a

- name: Download dependencies (BQPD and MUMPS_static)
shell: bash
run: |
VERSION_BQPD="1.0.0"
VERSION_MUMPS="5.8.0"
VERSION_HIGHS="1.11.0"
PLATFORM="x86_64-linux-gnu"
wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz
wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz
mkdir deps
mkdir deps/highs
tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps
tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
Expand All @@ -64,14 +79,15 @@ jobs:
-DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \
-DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \
-DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \
-DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \
-DBUILD_STATIC_LIBS=ON \
-DBUILD_SHARED_LIBS=OFF .
-DBUILD_SHARED_LIBS=ON .

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --target run_unotest --config ${{env.BUILD_TYPE}}
run: cmake --build ${{github.workspace}}/build --target run_unotest --config ${{env.BUILD_TYPE}} -j4

- name: Test
working-directory: ${{github.workspace}}/build
# Execute unit tests
run: ./run_unotest
run: ./run_unotest
Loading