@@ -2,15 +2,31 @@ name: Build
22on : [push, pull_request]
33
44jobs :
5+ check-nix-flake :
6+ runs-on : ubuntu-latest
7+ steps :
8+ - uses : actions/checkout@v4
9+ - uses : cachix/install-nix-action@v30
10+ - name : Check Nix Flake
11+ run : nix flake check --print-build-logs
12+
13+ check-nix-build :
14+ runs-on : ubuntu-latest
15+ steps :
16+ - uses : actions/checkout@v4
17+ - uses : cachix/install-nix-action@v30
18+ - name : Build package
19+ run : nix build --print-build-logs
20+
521 build-windows :
622 runs-on : windows-2022
723 defaults :
824 run :
925 shell : cmd
1026 steps :
11- - uses : actions/checkout@v3
27+ - uses : actions/checkout@v4
1228 with :
13- submodules : ' recursive'
29+ submodules : " recursive"
1430 - uses : lukka/get-cmake@latest
1531 - name : Build blisp tool
1632 run : |
@@ -19,19 +35,19 @@ jobs:
1935 cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
2036 cmake --build . --config Release
2137 - name : Upload results
22- uses : actions/upload-artifact@v3
38+ uses : actions/upload-artifact@v4
2339 with :
24- name : blips-windows-x86_64.zip
40+ name : blips-windows-x86_64
2541 path : |
2642 build/tools/blisp/Release/blisp.exe
2743 if-no-files-found : error
2844
2945 build-macos :
3046 runs-on : macos-latest
3147 steps :
32- - uses : actions/checkout@v3
48+ - uses : actions/checkout@v4
3349 with :
34- submodules : ' recursive'
50+ submodules : " recursive"
3551 - uses : lukka/get-cmake@latest
3652 - name : Build blisp tool
3753 run : |
@@ -40,19 +56,19 @@ jobs:
4056 cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
4157 cmake --build .
4258 - name : Upload results
43- uses : actions/upload-artifact@v3
59+ uses : actions/upload-artifact@v4
4460 with :
45- name : blips-apple-universal.zip
61+ name : blips-apple-universal
4662 path : |
4763 build/tools/blisp/blisp
4864 if-no-files-found : error
4965
5066 build-linux :
5167 runs-on : ubuntu-latest
5268 steps :
53- - uses : actions/checkout@v3
69+ - uses : actions/checkout@v4
5470 with :
55- submodules : ' recursive'
71+ submodules : " recursive"
5672 - uses : lukka/get-cmake@latest
5773 - name : Build blisp tool
5874 run : |
@@ -61,12 +77,12 @@ jobs:
6177 cmake .. -DBLISP_BUILD_CLI=ON -DCMAKE_BUILD_TYPE=Release
6278 cmake --build .
6379 - name : Upload results
64- uses : actions/upload-artifact@v3
80+ uses : actions/upload-artifact@v4
6581 with :
66- name : blips-linux-x86_64.zip
82+ name : blips-linux-x86_64
6783 path : |
6884 build/tools/blisp/blisp
69- if-no-files-found : error
85+ if-no-files-found : error
7086
7187 build-linux-alternative-arch :
7288 runs-on : ubuntu-latest
8399 - arch : riscv64
84100 distro : ubuntu_latest
85101 steps :
86- - uses : actions/checkout@v3
102+ - uses : actions/checkout@v4
87103 with :
88- submodules : ' recursive'
104+ submodules : " recursive"
89105 - uses : uraimo/run-on-arch-action@v2
90106 name : Build artifact
91107 id : build
@@ -133,9 +149,35 @@ jobs:
133149 echo "Produced artifact at /artifacts/${artifact_name}"
134150
135151 - name : Upload results
136- uses : actions/upload-artifact@v3
152+ uses : actions/upload-artifact@v4
137153 with :
138- name : blisp-linux-${{ matrix.arch }}.zip
154+ name : blisp-linux-${{ matrix.arch }}
139155 path : |
140156 artifacts/blisp-*
141- if-no-files-found : error
157+ if-no-files-found : error
158+
159+ test-linux :
160+ runs-on : ubuntu-latest
161+ steps :
162+ - uses : actions/checkout@v4
163+ with :
164+ submodules : " recursive"
165+ - uses : lukka/get-cmake@latest
166+ - name : Build blisp tool & unit tests
167+ run : |
168+ mkdir build
169+ cd build
170+ cmake .. -DBLISP_BUILD_CLI=ON -DCOMPILE_TESTS=ON
171+ cmake --build .
172+ - name : Run unit tests
173+ run : |
174+ cd build
175+ for f in $(find . -type f -executable -iname "*_test"); do
176+ echo "Running test file $f"
177+ "$f"
178+ status=$?
179+ if [ $status -ne 0 ]; then
180+ echo "Test $f failed with exit code $status"
181+ exit $status
182+ fi
183+ done
0 commit comments