-
-
Notifications
You must be signed in to change notification settings - Fork 44
95 lines (85 loc) · 3.24 KB
/
build-and-test-library.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
name: Build and test library
on:
push:
paths:
- '.github/workflows/build-and-test-library.yml'
- 'API/**'
- 'CMake/FindZeta.cmake'
- 'sources/*.c'
- 'sources/*.rc.in'
- 'support/*.sha3-512'
- 'CMakeLists.txt'
pull_request:
paths:
- '.github/workflows/build-and-test-library.yml'
- 'API/**'
- 'CMake/FindZeta.cmake'
- 'sources/*.c'
- 'sources/*.rc.in'
- 'support/*.sha3-512'
- 'CMakeLists.txt'
env:
ZETA_TARBALL_URL: 'http://zxe.io/software/Zeta/download/Zeta-latest.tar.xz'
BUILD_SHARED_LIBS: YES
CMAKE_BUILD_TYPE: Release
Z80_FETCH_TEST_FILES: YES
Z80_NOSTDLIB_FLAGS: Auto
Z80_WITH_CMAKE_SUPPORT: NO
Z80_WITH_HTML_DOCUMENTATION: NO
Z80_WITH_PDF_DOCUMENTATION: NO
Z80_WITH_PKGCONFIG_SUPPORT: NO
Z80_WITH_STANDARD_DOCUMENTS: NO
Z80_WITH_TESTS: YES
Z80_WITH_EXECUTE: YES
Z80_WITH_FULL_IM0: YES
Z80_WITH_IM0_RETX_NOTIFICATIONS: YES
Z80_WITH_Q: YES
Z80_WITH_SPECIAL_RESET: YES
Z80_WITH_UNOFFICIAL_RETI: NO
Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG: YES
jobs:
build-and-test-library:
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Install dependencies (POSIX)
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')
run: |
mkdir -p "${{github.workspace}}/build"
curl -L "${{env.ZETA_TARBALL_URL}}" | xz -cd | tar -C "${{github.workspace}}/build" --strip-components=2 -xvf - Zeta/API/Z
- name: Install dependencies (Windows)
if: startsWith(matrix.os, 'windows')
shell: cmd
run: |
mkdir "${{github.workspace}}\build"
curl -L "${{env.ZETA_TARBALL_URL}}" | 7z x -txz -si -so | 7z x -si -ttar -o"${{github.workspace}}\build" Zeta/API/Z
- name: Configure CMake
run: >-
cmake
-DBUILD_SHARED_LIBS=${{env.BUILD_SHARED_LIBS}}
-DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}}
-DZ80_FETCH_TEST_FILES=${{env.Z80_FETCH_TEST_FILES}}
-DZ80_NOSTDLIB_FLAGS=${{env.Z80_NOSTDLIB_FLAGS}}
-DZ80_WITH_CMAKE_SUPPORT=${{env.Z80_WITH_CMAKE_SUPPORT}}
-DZ80_WITH_HTML_DOCUMENTATION=${{env.Z80_WITH_HTML_DOCUMENTATION}}
-DZ80_WITH_PDF_DOCUMENTATION=${{env.Z80_WITH_PDF_DOCUMENTATION}}
-DZ80_WITH_PKGCONFIG_SUPPORT=${{env.Z80_WITH_PKGCONFIG_SUPPORT}}
-DZ80_WITH_STANDARD_DOCUMENTS=${{env.Z80_WITH_STANDARD_DOCUMENTS}}
-DZ80_WITH_TESTS=${{env.Z80_WITH_TESTS}}
-DZ80_WITH_EXECUTE=${{env.Z80_WITH_EXECUTE}}
-DZ80_WITH_FULL_IM0=${{env.Z80_WITH_FULL_IM0}}
-DZ80_WITH_IM0_RETX_NOTIFICATIONS=${{env.Z80_WITH_IM0_RETX_NOTIFICATIONS}}
-DZ80_WITH_Q=${{env.Z80_WITH_Q}}
-DZ80_WITH_SPECIAL_RESET=${{env.Z80_WITH_SPECIAL_RESET}}
-DZ80_WITH_UNOFFICIAL_RETI=${{env.Z80_WITH_UNOFFICIAL_RETI}}
-DZ80_WITH_ZILOG_NMOS_LD_A_IR_BUG=${{env.Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG}}
-B "${{github.workspace}}/build"
-S "${{github.workspace}}"
- name: Build
run: cmake --build "${{github.workspace}}/build" --config ${{env.CMAKE_BUILD_TYPE}} --verbose
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest --build-config ${{env.CMAKE_BUILD_TYPE}} --output-on-failure