zig-build.yml raw
1 # This workflow is for zig-based build/test running on Linux, MacOS, Windows.
2 name: zig build
3
4 on: [ push, pull_request ]
5
6 jobs:
7 build:
8 name: ${{ matrix.os }} ${{ matrix.ttriple }} thr:${{ matrix.enable_threads }} rwlock:${{ matrix.enable_rwlock }} redir:${{ matrix.redirect_malloc }} gcdeb:${{ matrix.enable_gc_debug }} munmap:${{ matrix.enable_munmap }} paramark:${{ matrix.parallel_mark }} thrlocal:${{ matrix.thread_local_alloc }} dll:${{ matrix.shared_libs }}
9 runs-on: ${{ matrix.os }}
10 timeout-minutes: 7
11
12 strategy:
13 fail-fast: false
14
15 matrix:
16 zig_version: [ "0.14.1" ]
17 os: [ macos-latest, ubuntu-latest, windows-latest ]
18 ttriple: [ native, native-native-msvc ]
19 enable_cplusplus: [ true ]
20 gc_assertions: [ true ]
21 large_config: [ false ]
22 enable_threads: [ false, true ]
23 disable_handle_fork: [ false ]
24 enable_rwlock: [ false, true ]
25 redirect_malloc: [ false, true ]
26 enable_gc_debug: [ false, true ]
27 enable_munmap: [ false, true ]
28 parallel_mark: [ false, true ]
29 thread_local_alloc: [ false, true ]
30 shared_libs: [ false, true ]
31 build_cord: [ false, true ]
32 exclude:
33 - build_cord: true # FIXME: cordtest hangs if shared lib build by MSVC
34 shared_libs: true
35 ttriple: native-native-msvc
36 - os: macos-latest
37 ttriple: native-native-msvc
38 - os: ubuntu-latest
39 ttriple: native-native-msvc
40 - os: windows-latest
41 disable_handle_fork: true
42 - enable_threads: false
43 disable_handle_fork: true
44 - enable_threads: false
45 parallel_mark: true
46 - enable_threads: false
47 enable_rwlock: true
48 - enable_threads: false
49 thread_local_alloc: true
50 # The following ones are long-running jobs, thus excluded.
51 - os: macos-latest
52 enable_gc_debug: true
53 enable_rwlock: true
54 # The following ones just to reduce amount of jobs.
55 - build_cord: false
56 shared_libs: false
57 - build_cord: false
58 ttriple: native
59 - enable_munmap: false
60 shared_libs: true
61 - enable_munmap: true
62 enable_threads: false
63 shared_libs: false
64 - enable_gc_debug: true
65 enable_rwlock: true
66 thread_local_alloc: false
67 - parallel_mark: false
68 redirect_malloc: true
69 - enable_gc_debug: true
70 thread_local_alloc: false
71 - os: macos-latest
72 enable_munmap: false
73 enable_threads: false
74 - os: macos-latest
75 enable_munmap: false
76 enable_rwlock: true
77 - os: macos-latest
78 enable_rwlock: true
79 thread_local_alloc: false
80 - os: macos-latest
81 enable_rwlock: true
82 parallel_mark: false
83 - os: macos-latest
84 enable_munmap: false
85 redirect_malloc: false
86 - os: macos-latest
87 enable_threads: true
88 redirect_malloc: false
89 thread_local_alloc: false
90 - os: macos-latest
91 enable_threads: true
92 parallel_mark: false
93 redirect_malloc: false
94
95 steps:
96 - uses: actions/checkout@v4
97 - uses: korandoru/setup-zig@v1
98 with:
99 zig-version: ${{ matrix.zig_version }}
100 - name: Build
101 run: >
102 zig build -Dtarget=${{ matrix.ttriple }}
103 -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }}
104 -Dbuild_cord=${{ matrix.build_cord }}
105 -Ddisable_handle_fork=${{ matrix.disable_handle_fork }}
106 -Denable_cplusplus=${{ matrix.enable_cplusplus }}
107 -Denable_gc_assertions=${{ matrix.gc_assertions }}
108 -Denable_gc_debug=${{ matrix.enable_gc_debug }}
109 -Denable_large_config=${{ matrix.large_config }}
110 -Denable_munmap=${{ matrix.enable_munmap }}
111 -Denable_parallel_mark=${{ matrix.parallel_mark }}
112 -Denable_redirect_malloc=${{ matrix.redirect_malloc }}
113 -Denable_rwlock=${{ matrix.enable_rwlock }}
114 -Denable_thread_local_alloc=${{ matrix.thread_local_alloc }}
115 -Denable_threads=${{ matrix.enable_threads }}
116 -Denable_werror
117 test
118