@@ -4,10 +4,43 @@ on: [push, pull_request]
44
55jobs :
66 ubuntu :
7+ runs-on : [ubuntu-latest, ubuntu-24.04-arm]
8+
9+ strategy :
10+ matrix :
11+ config : [Release]
12+ all_tests : [ON]
13+
14+ steps :
15+ - uses : actions/checkout@v4
16+
17+ - name : Create Build Environment
18+ run : cmake -E make_directory ${{runner.workspace}}/build
19+
20+ - name : Configure CMake
21+ working-directory : ${{runner.workspace}}/build
22+ run : |
23+ cmake $GITHUB_WORKSPACE -DHIPO=ON -DBUILD_OPENBLAS=ON \
24+ -DALL_TESTS=${{ matrix.all_tests }}
25+
26+ - name : Build
27+ working-directory : ${{runner.workspace}}/build
28+ run : |
29+ cmake --build . --parallel
30+
31+ - name : Test executable
32+ working-directory : ${{runner.workspace}}/build
33+ run : ./bin/highs --solver=hipo $GITHUB_WORKSPACE/check/instances/afiro.mps
34+
35+ - name : Ctest
36+ working-directory : ${{runner.workspace}}/build
37+ run : |
38+ ctest --parallel --timeout 300 --output-on-failure
39+
40+ ubuntu_32 :
741 runs-on : ubuntu-latest
842 strategy :
943 matrix :
10- # config: [Release, Debug]
1144 config : [Release]
1245 all_tests : [ON]
1346
@@ -17,11 +50,60 @@ jobs:
1750 - name : Create Build Environment
1851 run : cmake -E make_directory ${{runner.workspace}}/build
1952
53+ - name : Install 32-bit deps
54+ run : |
55+ sudo apt-get update
56+ sudo apt-get install -y gcc-multilib g++-multilib
57+ sudo apt-get install -y libc6-dev-i386 libstdc++-devel.i686
58+
59+ - name : Configure CMake
60+ working-directory : ${{runner.workspace}}/build
61+ run : |
62+ cmake $GITHUB_WORKSPACE -DHIPO=ON -DBUILD_OPENBLAS=ON \
63+ -DALL_TESTS=${{ matrix.all_tests }} \
64+ -DCMAKE_C_FLAGS="-m32" \
65+ -DCMAKE_CXX_FLAGS="-m32" \
66+ -DCMAKE_SHARED_LINKER_FLAGS="-m32"
67+
68+ - name : Build
69+ working-directory : ${{runner.workspace}}/build
70+ run : |
71+ cmake --build . --parallel
72+
73+ - name : Test executable
74+ working-directory : ${{runner.workspace}}/build
75+ run : ./bin/highs --solver=hipo $GITHUB_WORKSPACE/check/instances/afiro.mps
76+
77+ - name : Ctest
78+ working-directory : ${{runner.workspace}}/build
79+ run : |
80+ ctest --parallel --timeout 300 --output-on-failure ubuntu_32:
81+
82+ ubuntu_32_arm :
83+ runs-on : ubuntu-24.04-arm
84+ strategy :
85+ matrix :
86+ config : [Release]
87+ all_tests : [ON]
88+
89+ steps :
90+ - uses : actions/checkout@v4
91+
92+ - name : Create Build Environment
93+ run : cmake -E make_directory ${{runner.workspace}}/build
94+
95+ - name : Install 32-bit deps
96+ run : |
97+ sudo apt-get update
98+ sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
99+
20100 - name : Configure CMake
21101 working-directory : ${{runner.workspace}}/build
22102 run : |
103+ export CC=arm-linux-gnueabihf-gcc
104+ export CXX=arm-linux-gnueabihf-g++
23105 cmake $GITHUB_WORKSPACE -DHIPO=ON -DBUILD_OPENBLAS=ON \
24- -DALL_TESTS=${{ matrix.all_tests }}
106+ -DALL_TESTS=${{ matrix.all_tests }}
25107
26108 - name : Build
27109 working-directory : ${{runner.workspace}}/build
@@ -38,11 +120,56 @@ jobs:
38120 ctest --parallel --timeout 300 --output-on-failure
39121
40122 windows :
41- runs-on : windows-latest
123+ runs-on : [windows-latest]
124+ fail-fast : false
125+ strategy :
126+ matrix :
127+ config : [Release]
128+ all_tests : [ON]
129+ arch : ["x64", "Win32"]
130+
131+ steps :
132+ - uses : actions/checkout@v4
133+
134+ - name : Configure CMake
135+ shell : pwsh
136+ run : |
137+ cmake `
138+ -S "$env:GITHUB_WORKSPACE" `
139+ -B "${{ runner.workspace }}/build" `
140+ -A ${{ matrix.arch }} `
141+ -DHIPO=ON `
142+ -DALL_TESTS=${{ matrix.all_tests }} `
143+ -DBUILD_OPENBLAS=ON
144+
145+ - name : Build
146+ shell : pwsh
147+ working-directory : ${{runner.workspace}}/build
148+ run : |
149+ cmake --build . --parallel --config ${{ matrix.config }}
150+
151+ - name : Test executable
152+ shell : pwsh
153+ working-directory : ${{runner.workspace}}/build
154+ run : |
155+ & ".\${{ matrix.config }}\bin\highs.exe" --solver=hipo `
156+ "$env:GITHUB_WORKSPACE/check/instances/afiro.mps"
157+
158+ - name : Ctest
159+ shell : pwsh
160+ working-directory : ${{runner.workspace}}/build
161+ run : |
162+ ctest --parallel --timeout 300 --output-on-failure -C ${{ matrix.config }}
163+
164+ windows_arm_64 :
165+ runs-on : [windows-11-arm]
42166 strategy :
43167 matrix :
44168 config : [Release]
45169 all_tests : [ON]
170+ # ARM32 Windows development is basically deprecated:
171+ # https://learn.microsoft.com/en-us/windows/arm/arm32-to-arm64
172+ arch : ["x64"]
46173
47174 steps :
48175 - uses : actions/checkout@v4
53180 cmake `
54181 -S "$env:GITHUB_WORKSPACE" `
55182 -B "${{ runner.workspace }}/build" `
183+ -A ${{ matrix.arch }} `
56184 -DHIPO=ON `
57185 -DALL_TESTS=${{ matrix.all_tests }} `
58186 -DBUILD_OPENBLAS=ON
@@ -75,3 +203,34 @@ jobs:
75203 working-directory : ${{runner.workspace}}/build
76204 run : |
77205 ctest --parallel --timeout 300 --output-on-failure -C ${{ matrix.config }}
206+
207+ # linux shared is default, static build tested in the release artifacts
208+ # windows static is default so test shared
209+ windows_shared :
210+ runs-on : [windows-latest]
211+
212+ steps :
213+ - uses : actions/checkout@v4
214+
215+ - name : Configure CMake
216+ shell : pwsh
217+ run : |
218+ cmake `
219+ -S "$env:GITHUB_WORKSPACE" `
220+ -B "${{ runner.workspace }}/build" `
221+ -DHIPO=ON `
222+ -DBUILD_OPENBLAS=ON `
223+ -DBUILD_SHARED_LIBS=ON
224+
225+ - name : Build
226+ shell : pwsh
227+ working-directory : ${{runner.workspace}}/build
228+ run : |
229+ cmake --build . --parallel --config Release
230+
231+ - name : Test executable
232+ shell : pwsh
233+ working-directory : ${{runner.workspace}}/build
234+ run : |
235+ & ".\${{ matrix.config }}\bin\highs.exe" --solver=hipo `
236+ "$env:GITHUB_WORKSPACE/check/instances/afiro.mps"
0 commit comments