Skip to content

Commit 24a768a

Browse files
committed
multi-arch ci/cd
1 parent 1e528ee commit 24a768a

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Linux Multi-Architecture Build
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
paths:
7+
- '**/*.cpp'
8+
- '**/*.hpp'
9+
- '.github/workflows/build-multi-arch.yml'
10+
pull_request:
11+
branches: ["main"]
12+
paths:
13+
- '**/*.cpp'
14+
- '**/*.hpp'
15+
- '.github/workflows/build-multi-arch.yml'
16+
workflow_dispatch:
17+
18+
env:
19+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
include:
28+
- arch: amd64
29+
platform: linux/amd64
30+
image: debian:bookworm
31+
- arch: arm64
32+
platform: linux/arm64
33+
image: debian:bookworm
34+
- arch: armhf
35+
platform: linux/arm/v7
36+
image: debian:bookworm
37+
- arch: armel
38+
platform: linux/arm/v6
39+
image: debian:bookworm
40+
- arch: i386
41+
platform: linux/386
42+
image: debian:bookworm
43+
- arch: mips64el
44+
platform: linux/mips64le
45+
image: debian:bookworm
46+
- arch: ppc64el
47+
platform: linux/ppc64le
48+
image: debian:bookworm
49+
- arch: riscv64
50+
platform: linux/riscv64
51+
image: debian:sid
52+
- arch: s390x
53+
platform: linux/s390x
54+
image: debian:bookworm
55+
56+
steps:
57+
- uses: actions/checkout@v4
58+
59+
- name: Set up QEMU
60+
uses: docker/setup-qemu-action@v3
61+
62+
- name: Build (${{ matrix.arch }})
63+
run: |
64+
docker run --rm \
65+
--platform ${{ matrix.platform }} \
66+
-v ${{ github.workspace }}:/src \
67+
-w /src \
68+
${{ matrix.image }} \
69+
bash -c "
70+
apt-get update -q &&
71+
apt-get install -y --no-install-recommends g++ build-essential python3-pip &&
72+
pip3 install cmake --break-system-packages &&
73+
cmake -B build -DCMAKE_BUILD_TYPE=Release &&
74+
cmake --build build --config Release
75+
"

0 commit comments

Comments
 (0)