Skip to content

Commit 10c19d3

Browse files
committed
Merge latest into fix-1423
2 parents d2d2467 + 87f2137 commit 10c19d3

File tree

107 files changed

+23140
-5825
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+23140
-5825
lines changed

.github/workflows/build-nuget-package.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,47 +80,49 @@ jobs:
8080

8181
build_linux:
8282
runs-on: ubuntu-latest
83+
container: stabletec/build-core:debian-11
8384
steps:
8485
- uses: actions/checkout@v4
8586
- name: Build HiGHS
8687
run: |
87-
cmake -E make_directory ${{runner.workspace}}/build
88+
cmake -E make_directory /__w/HiGHS/HiGHS/build
8889
8990
- name: Configure CMake
90-
working-directory: ${{runner.workspace}}/build
91+
working-directory: /__w/HiGHS/HiGHS/build
9192
run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON
9293

9394
- name: Build
94-
working-directory: ${{runner.workspace}}/build
95+
working-directory: /__w/HiGHS/HiGHS/build
9596
run: cmake --build . --config Release --parallel
9697

9798
- uses: actions/upload-artifact@v4
9899
with:
99100
name: linux-x64
100-
path: ${{runner.workspace}}/build/dotnet/Highs.Native/runtimes
101+
path: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native/runtimes
101102

102103
build_linux_arm64:
103-
runs-on: ubuntu-latest
104+
runs-on: ubuntu-24.04-arm
105+
container: stabletec/build-core:debian-11
104106
steps:
105107
- uses: actions/checkout@v4
106108
- name: Build HiGHS
107109
run: |
108-
cmake -E make_directory ${{runner.workspace}}/build_linux_arm64
110+
cmake -E make_directory /__w/HiGHS/HiGHS/build_linux_arm64
109111
110112
- name: Configure CMake linux-arm-64
111-
working-directory: ${{runner.workspace}}/build_linux_arm64
113+
working-directory: /__w/HiGHS/HiGHS/build_linux_arm64
112114
shell: bash
113115
run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/nuget/arm-toolchain.cmake
114116

115117
- name: Build linux-arm-64
116-
working-directory: ${{runner.workspace}}/build_linux_arm64
118+
working-directory: /__w/HiGHS/HiGHS/build_linux_arm64
117119
shell: bash
118120
run: cmake --build . --config Release --parallel
119121

120122
- uses: actions/upload-artifact@v4
121123
with:
122124
name: linux-arm64
123-
path: ${{runner.workspace}}/build_linux_arm64/dotnet/Highs.Native/runtimes
125+
path: /__w/HiGHS/HiGHS/build_linux_arm64/dotnet/Highs.Native/runtimes
124126

125127
build_windows:
126128
runs-on: windows-latest

.github/workflows/build-python-package.yml

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,23 +75,23 @@ jobs:
7575
python -m pytest
7676
7777
build_wheel_linux:
78-
# ubuntu 22 has a latest version of cmake, but setup-python
79-
# does not seem to provide all necessary modules to find python
80-
# from cmake. works on my machine, test the wheels manually
81-
runs-on: ubuntu-22.04
78+
runs-on: ubuntu-24.04
79+
strategy:
80+
matrix:
81+
python: [3.11]
8282
steps:
8383
- uses: actions/checkout@v4
8484

8585
- name: Install correct python version
8686
uses: actions/setup-python@v5
8787
with:
88-
python-version: '3.10'
88+
python-version: ${{ matrix.python }}
8989

9090
- name: Build wheel
9191
run: |
9292
python3 --version
9393
python3 -m pip install cibuildwheel
94-
python3 -m cibuildwheel --only cp310-manylinux_x86_64 $GITHUB_WORKSPACE
94+
python3 -m cibuildwheel --only cp311-manylinux_x86_64 $GITHUB_WORKSPACE
9595
9696
- name: Install wheel
9797
run: |
@@ -102,7 +102,36 @@ jobs:
102102
run: |
103103
python3 -m pip install pytest
104104
python3 -m pytest $GITHUB_WORKSPACE
105-
105+
106+
build_wheel_linux_arm:
107+
runs-on: ubuntu-24.04-arm
108+
strategy:
109+
matrix:
110+
python: [3.11]
111+
steps:
112+
- uses: actions/checkout@v4
113+
114+
- name: Install python
115+
uses: actions/setup-python@v5
116+
with:
117+
python-version: ${{ matrix.python }}
118+
119+
- name: Build wheel
120+
run: |
121+
python3 --version
122+
python3 -m pip install cibuildwheel
123+
python3 -m cibuildwheel --only cp311-manylinux_aarch64 $GITHUB_WORKSPACE
124+
125+
- name: Install wheel
126+
run: |
127+
ls wheelhouse
128+
python3 -m pip install wheelhouse/*.whl
129+
130+
- name: Test highspy
131+
run: |
132+
python3 -m pip install pytest
133+
python3 -m pytest $GITHUB_WORKSPACE
134+
106135
# macos 13 is Intel
107136
build_wheel_macos_13:
108137
runs-on: macos-13

.github/workflows/build-wheels-push.yml

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ jobs:
4343
# Github Actions doesn't support pairing matrix values together, let's improvise
4444
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
4545
buildplat:
46-
- [ubuntu-20.04, manylinux_x86_64]
47-
- [ubuntu-20.04, manylinux_i686]
48-
- [ubuntu-20.04, manylinux_aarch64]
49-
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
50-
- [ubuntu-20.04, musllinux_i686]
51-
- [ubuntu-20.04, musllinux_aarch64]
46+
- [ubuntu-24.04, manylinux_x86_64]
47+
- [ubuntu-24.04, manylinux_i686]
48+
- [ubuntu-24.04-arm, manylinux_aarch64]
49+
- [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test
50+
- [ubuntu-24.04, musllinux_i686]
51+
- [ubuntu-24.04-arm, musllinux_aarch64]
5252
- [macos-13, macosx_x86_64]
5353
- [macos-14, macosx_arm64]
5454
- [windows-2019, win_amd64]
@@ -58,21 +58,7 @@ jobs:
5858
steps:
5959
- uses: actions/checkout@v4
6060

61-
- name: Set up QEMU # Required for aarch64 builds
62-
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
63-
uses: docker/setup-qemu-action@v3
64-
with:
65-
platforms: all
66-
67-
- name: Build wheels (aarch64)
68-
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
69-
uses: pypa/cibuildwheel@v2.21
70-
env:
71-
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
72-
CIBW_ARCHS_LINUX: aarch64
73-
74-
- name: Build wheels (not aarch64)
75-
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
61+
- name: Build wheels
7662
uses: pypa/cibuildwheel@v2.21
7763
env:
7864
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}

.github/workflows/build-wheels.yml

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ jobs:
3232
# Github Actions doesn't support pairing matrix values together, let's improvise
3333
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
3434
buildplat:
35-
- [ubuntu-20.04, manylinux_x86_64]
36-
- [ubuntu-20.04, manylinux_i686]
37-
- [ubuntu-20.04, manylinux_aarch64]
38-
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
39-
- [ubuntu-20.04, musllinux_i686]
40-
- [ubuntu-20.04, musllinux_aarch64]
35+
- [ubuntu-24.04, manylinux_x86_64]
36+
- [ubuntu-24.04, manylinux_i686]
37+
- [ubuntu-24.04-arm, manylinux_aarch64]
38+
- [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test
39+
- [ubuntu-24.04, musllinux_i686]
40+
- [ubuntu-24.04-arm, musllinux_aarch64]
4141
- [macos-13, macosx_x86_64]
4242
- [macos-14, macosx_arm64]
4343
- [windows-2019, win_amd64]
@@ -46,21 +46,7 @@ jobs:
4646

4747
steps:
4848
- uses: actions/checkout@v4
49-
- name: Set up QEMU # Required for aarch64 builds
50-
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
51-
uses: docker/setup-qemu-action@v3
52-
with:
53-
platforms: all
54-
55-
- name: Build wheels (aarch64)
56-
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
57-
uses: pypa/cibuildwheel@v2.21
58-
env:
59-
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
60-
CIBW_ARCHS_LINUX: aarch64
61-
62-
- name: Build wheels (not aarch64)
63-
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
49+
- name: Build wheels
6450
uses: pypa/cibuildwheel@v2.21
6551
env:
6652
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}

.github/workflows/code-coverage.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: code-coverage
22

3-
on: [push, pull_request]
3+
on: [pull_request]
44

55
jobs:
66
debug:
@@ -44,24 +44,25 @@ jobs:
4444
lcov --remove cov.info "extern/pdqsort/*" -o cov.info
4545
lcov --remove cov.info "extern/zstr/*" -o cov.info
4646
lcov --remove cov.info "extern/catch*" -o cov.info
47-
lcov --remove cov.info "app/cxxopts*" -o cov.info
47+
lcov --remove cov.info "app/CLI11*" -o cov.info
4848
lcov --remove cov.info "src/test*" -o cov.info
4949
lcov --list cov.info
50+
mv cov.info coverage.info
5051
5152
- name: Genhtml Results Summary
5253
working-directory: ${{runner.workspace}}/build
5354
shell: bash
5455
run: |
55-
genhtml -o coverage cov.info
56+
genhtml -o coverage coverage.info
5657
5758
# Made it past the first token issue.
5859
# May need some more time to porpagate on the codecov side.
59-
# - name: Upload coverage reports to Codecov
60-
# uses: codecov/codecov-action@v5
61-
# with:
62-
# token: ${{ secrets.CODECOV_TOKEN }}
63-
# slug: ERGO-Code/HiGHS
64-
# fail_ci_if_error: true # optional (default = false)
65-
# files: ${{runner.workspace}}/build/cov.info # optional
66-
# # name: codecov-umbrella # optional
67-
# verbose: true # optional (default = false)
60+
- name: Upload coverage reports to Codecov
61+
uses: codecov/codecov-action@v5
62+
with:
63+
token: ${{ secrets.CODECOV_TOKEN }}
64+
slug: ERGO-Code/HiGHS
65+
fail_ci_if_error: true # optional (default = false)
66+
files: ${{runner.workspace}}/build/coverage.info # optional
67+
# name: codecov-umbrella # optional
68+
verbose: true # optional (default = false)

.github/workflows/test-nuget-package.yml

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,88 +102,90 @@ jobs:
102102
103103
build_linux:
104104
runs-on: ubuntu-latest
105+
container: stabletec/build-core:debian-11
105106
steps:
106107
- uses: actions/checkout@v4
107108
- name: Build HiGHS
108109
run: |
109-
cmake -E make_directory ${{runner.workspace}}/build
110-
cmake -E make_directory ${{runner.workspace}}/nugets
111-
cmake -E make_directory ${{runner.workspace}}/test_nuget
110+
cmake -E make_directory /__w/HiGHS/HiGHS/build
111+
cmake -E make_directory /__w/HiGHS/HiGHS/nugets
112+
cmake -E make_directory /__w/HiGHS/HiGHS/test_nuget
112113
113114
- name: Configure CMake
114-
working-directory: ${{runner.workspace}}/build
115+
working-directory: /__w/HiGHS/HiGHS/build
115116
run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON
116117

117118
- name: Build
118-
working-directory: ${{runner.workspace}}/build
119+
working-directory: /__w/HiGHS/HiGHS/build
119120
run: cmake --build . --config Release --parallel
120121

121122
- uses: actions/setup-dotnet@v4
122123
with:
123124
dotnet-version: '6.0.x'
124125

125126
- name: Dotnet pack
126-
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
127+
working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
127128
run: dotnet pack -c Release /p:Version=1.9.0
128129

129130
- name: Add local feed
130-
run: dotnet nuget add source ${{runner.workspace}}/nugets
131+
run: dotnet nuget add source /__w/HiGHS/HiGHS/nugets
131132

132133
- name: Dotnet push to local feed
133-
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
134-
run: dotnet nuget push ./bin/Release/*.nupkg -s ${{runner.workspace}}/nugets
134+
working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
135+
run: dotnet nuget push ./bin/Release/*.nupkg -s /__w/HiGHS/HiGHS/nugets
135136

136137
- name: Create new project and test
137138
shell: bash
138-
working-directory: ${{runner.workspace}}/test_nuget
139+
working-directory: /__w/HiGHS/HiGHS/test_nuget
139140
run: |
140141
dotnet new console
141142
rm Program.cs
142143
cp $GITHUB_WORKSPACE/examples/call_highs_from_csharp.cs .
143-
dotnet add package Highs.Native -s ${{runner.workspace}}/nugets
144+
dotnet add package Highs.Native -s /__w/HiGHS/HiGHS/nugets
144145
dotnet run
145146
146147
build_linux_8:
147148
runs-on: ubuntu-latest
149+
container: stabletec/build-core:debian-11
148150
steps:
149151
- uses: actions/checkout@v4
150152
- name: Build HiGHS
151153
run: |
152-
cmake -E make_directory ${{runner.workspace}}/build
153-
cmake -E make_directory ${{runner.workspace}}/nugets
154-
cmake -E make_directory ${{runner.workspace}}/test_nuget
154+
cmake -E make_directory /__w/HiGHS/HiGHS/build
155+
cmake -E make_directory /__w/HiGHS/HiGHS/nugets
156+
cmake -E make_directory /__w/HiGHS/HiGHS/test_nuget
155157
156158
- name: Configure CMake
157-
working-directory: ${{runner.workspace}}/build
159+
working-directory: /__w/HiGHS/HiGHS/build
158160
run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON
159161

160162
- name: Build
161-
working-directory: ${{runner.workspace}}/build
163+
working-directory: /__w/HiGHS/HiGHS/build
162164
run: cmake --build . --config Release --parallel
163165

164166
- uses: actions/setup-dotnet@v4
165167
with:
166168
dotnet-version: '8.0.x'
167169

168170
- name: Dotnet pack
169-
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
171+
working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
170172
run: dotnet pack -c Release /p:Version=1.9.0
171173

172174
- name: Add local feed
173-
run: dotnet nuget add source ${{runner.workspace}}/nugets
175+
run: dotnet nuget add source /__w/HiGHS/HiGHS/nugets
174176

175177
- name: Dotnet push to local feed
176-
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
177-
run: dotnet nuget push ./bin/Release/*.nupkg -s ${{runner.workspace}}/nugets
178+
working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
179+
run: dotnet nuget push ./bin/Release/*.nupkg -s /__w/HiGHS/HiGHS/nugets
178180

179181
- name: Create new project and test
180182
shell: bash
181-
working-directory: ${{runner.workspace}}/test_nuget
183+
working-directory: /__w/HiGHS/HiGHS/test_nuget
182184
run: |
183185
dotnet new console
184186
rm Program.cs
185187
cp $GITHUB_WORKSPACE/examples/call_highs_from_csharp.cs .
186-
dotnet add package Highs.Native -s ${{runner.workspace}}/nugets
188+
dotnet add package Highs.Native -s /__w/HiGHS/HiGHS/nugets
187189
dotnet run
188190
189191
build_windows:

0 commit comments

Comments
 (0)