Skip to content

Commit 2bc3499

Browse files
committed
feat(ci): add cross-compile check
1 parent 29ce456 commit 2bc3499

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

.github/workflows/ci.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,62 @@ jobs:
161161
run: |
162162
bazel run //:example
163163
164+
cross-compile:
165+
runs-on: ubuntu-latest
166+
strategy:
167+
fail-fast: false
168+
matrix:
169+
target:
170+
# Linux targets - x86/x64
171+
- { arch: x86_64-linux-gnu, name: "Linux x86_64 (glibc)" }
172+
- { arch: x86_64-linux-musl, name: "Linux x86_64 (musl)" }
173+
- { arch: x86-linux-gnu, name: "Linux x86 (32-bit)" }
174+
175+
# Linux targets - ARM
176+
- { arch: aarch64-linux-gnu, name: "Linux ARM64 (glibc)" }
177+
- { arch: aarch64-linux-musl, name: "Linux ARM64 (musl)" }
178+
- { arch: arm-linux-gnueabihf, name: "Linux ARM (hard-float)" }
179+
- { arch: arm-linux-gnueabi, name: "Linux ARM (soft-float)" }
180+
181+
# Linux targets - RISC-V
182+
- { arch: riscv64-linux-gnu, name: "Linux RISC-V 64 (glibc)" }
183+
- { arch: riscv64-linux-musl, name: "Linux RISC-V 64 (musl)" }
184+
185+
# Linux targets - Other architectures
186+
- { arch: powerpc64le-linux-gnu, name: "Linux PowerPC64 LE" }
187+
- { arch: s390x-linux-gnu, name: "Linux s390x (IBM Z)" }
188+
- { arch: mips64el-linux-gnuabi64, name: "Linux MIPS64 LE" }
189+
- { arch: loongarch64-linux-gnu, name: "Linux LoongArch64" }
190+
191+
# macOS targets
192+
- { arch: x86_64-macos, name: "macOS x86_64 (Intel)" }
193+
- { arch: aarch64-macos, name: "macOS ARM64 (Apple Silicon)" }
194+
195+
# Windows targets
196+
- { arch: x86_64-windows-gnu, name: "Windows x86_64" }
197+
- { arch: x86-windows-gnu, name: "Windows x86 (32-bit)" }
198+
199+
steps:
200+
- uses: actions/checkout@v4
201+
- uses: mlugg/setup-zig@v2
202+
203+
- name: Compile the example
204+
run: |
205+
zig cc example/main.c dist/core.c \
206+
-I includes/ \
207+
-target ${{ matrix.target.arch }} \
208+
-Wall \
209+
-Werror \
210+
-Wno-format-security \
211+
-Wno-unused-but-set-variable \
212+
-Wno-unused-const-variable \
213+
-Wno-type-limits \
214+
-Wno-uninitialized \
215+
-Wno-constant-conversion \
216+
-Wno-incompatible-pointer-types \
217+
-Wno-unused-function \
218+
-o example.out
219+
164220
check:
165221
runs-on: ubuntu-latest
166222
if: always()
@@ -170,6 +226,7 @@ jobs:
170226
- build
171227
- test-build-cmake
172228
- test-build-bazel
229+
- cross-compile
173230
steps:
174231
- uses: re-actors/alls-green@release/v1
175232
with:

0 commit comments

Comments
 (0)