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