Skip to content

Commit ceeec34

Browse files
authored
Merge pull request #85 from monome/build-linux-arm64
add arm64 linux build to ci
2 parents 9442d8e + 21b9359 commit ceeec34

File tree

1 file changed

+107
-44
lines changed

1 file changed

+107
-44
lines changed

.github/workflows/build.yml

Lines changed: 107 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,125 @@ on:
77
branches: [main]
88

99
jobs:
10-
build:
11-
strategy:
12-
fail-fast: false
13-
matrix:
14-
include:
15-
- name: linux
16-
os: ubuntu-latest
17-
shell: bash
18-
19-
- name: macos
20-
os: macos-latest
21-
shell: bash
22-
23-
- name: windows-x64
24-
os: windows-latest
25-
shell: msys2 {0}
26-
msystem: CLANG64
27-
msys_packages: >-
28-
mingw-w64-clang-x86_64-toolchain
29-
mingw-w64-clang-x86_64-cmake
30-
mingw-w64-clang-x86_64-ninja
31-
32-
- name: windows-arm64
33-
os: windows-11-arm
34-
shell: msys2 {0}
35-
msystem: CLANGARM64
36-
msys_packages: >-
37-
mingw-w64-clang-aarch64-toolchain
38-
mingw-w64-clang-aarch64-cmake
39-
mingw-w64-clang-aarch64-ninja
40-
41-
name: build (${{ matrix.name }})
42-
runs-on: ${{ matrix.os }}
10+
linux-x86_64:
11+
name: build (linux-x86_64)
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
submodules: recursive
18+
19+
- name: install dependencies
20+
run: |
21+
sudo apt update && sudo apt install -y build-essential cmake ninja-build libudev-dev libavahi-compat-libdnssd-dev
22+
23+
- name: configure
24+
run: |
25+
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
26+
27+
- name: build
28+
run: |
29+
cmake --build build
30+
31+
linux-arm64:
32+
name: build (linux-arm64)
33+
runs-on: ubuntu-24.04-arm
34+
35+
steps:
36+
- uses: actions/checkout@v4
37+
with:
38+
submodules: recursive
39+
40+
- name: install dependencies
41+
run: |
42+
sudo apt update && sudo apt install -y build-essential cmake ninja-build libudev-dev libavahi-compat-libdnssd-dev
43+
44+
- name: configure
45+
run: |
46+
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
47+
48+
- name: build
49+
run: |
50+
cmake --build build
51+
52+
macos:
53+
name: build (macos-universal)
54+
runs-on: macos-latest
55+
56+
steps:
57+
- uses: actions/checkout@v4
58+
with:
59+
submodules: recursive
60+
61+
- name: configure
62+
run: |
63+
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
64+
65+
- name: build
66+
run: |
67+
cmake --build build
68+
69+
windows-x86_64:
70+
name: build (windows-x86_64)
71+
runs-on: windows-latest
4372

4473
defaults:
4574
run:
46-
shell: ${{ matrix.shell }}
75+
shell: msys2 {0}
4776

4877
steps:
4978
- uses: actions/checkout@v4
5079
with:
5180
submodules: recursive
5281

53-
- name: install dependencies (linux)
54-
if: runner.os == 'Linux'
82+
- name: install dependencies
83+
uses: msys2/setup-msys2@v2
84+
with:
85+
msystem: CLANG64
86+
update: true
87+
install: >-
88+
mingw-w64-clang-x86_64-toolchain
89+
mingw-w64-clang-x86_64-cmake
90+
mingw-w64-clang-x86_64-ninja
91+
92+
- name: configure
5593
run: |
56-
sudo apt update && sudo apt install -y build-essential cmake ninja-build libudev-dev libavahi-compat-libdnssd-dev
94+
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
95+
96+
- name: build
97+
run: |
98+
cmake --build build
99+
100+
- name: upload artifacts
101+
uses: actions/upload-artifact@v4
102+
with:
103+
name: serialosc-windows-x86_64
104+
path: build/bin/
105+
if-no-files-found: warn
106+
107+
windows-arm64:
108+
name: build (windows-arm64)
109+
runs-on: windows-11-arm
110+
111+
defaults:
112+
run:
113+
shell: msys2 {0}
114+
115+
steps:
116+
- uses: actions/checkout@v4
117+
with:
118+
submodules: recursive
57119

58-
- name: install dependencies (windows)
59-
if: runner.os == 'Windows'
120+
- name: install dependencies
60121
uses: msys2/setup-msys2@v2
61122
with:
62-
msystem: ${{ matrix.msystem }}
123+
msystem: CLANGARM64
63124
update: true
64-
install: ${{ matrix.msys_packages }}
125+
install: >-
126+
mingw-w64-clang-aarch64-toolchain
127+
mingw-w64-clang-aarch64-cmake
128+
mingw-w64-clang-aarch64-ninja
65129
66130
- name: configure
67131
run: |
@@ -71,10 +135,9 @@ jobs:
71135
run: |
72136
cmake --build build
73137
74-
- name: upload artifacts (windows)
75-
if: runner.os == 'Windows'
138+
- name: upload artifacts
76139
uses: actions/upload-artifact@v4
77140
with:
78-
name: serialosc-${{ matrix.name }}
141+
name: serialosc-windows-arm64
79142
path: build/bin/
80143
if-no-files-found: warn

0 commit comments

Comments
 (0)