Skip to content

Commit b5e49eb

Browse files
committed
Combine Linux and macOS workflows into one
1 parent 86b8a40 commit b5e49eb

3 files changed

Lines changed: 131 additions & 119 deletions

File tree

.github/workflows/build-linux.yaml

Lines changed: 0 additions & 54 deletions
This file was deleted.

.github/workflows/build-mac.yaml

Lines changed: 0 additions & 65 deletions
This file was deleted.

.github/workflows/build.yaml

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
jobs:
6+
build:
7+
strategy:
8+
matrix:
9+
include:
10+
- os: linux
11+
arch: x64
12+
runner: ubuntu-24.04
13+
- os: linux
14+
arch: arm64
15+
runner: ubuntu-24.04-arm64
16+
- os: macos
17+
arch: x64
18+
runner: macos-15-intel
19+
- os: macos
20+
arch: arm64
21+
runner: macos-15
22+
runs-on: ${{ matrix.runner }}
23+
steps:
24+
- uses: actions/checkout@v4
25+
with:
26+
submodules: 'recursive'
27+
28+
# Linux dependencies
29+
- name: Install Linux dependencies
30+
if: matrix.os == 'linux'
31+
run: |
32+
sudo apt update
33+
sudo apt install -y autoconf libglib2.0-dev libpixman-1-dev libsdl2-dev python2.7 build-essential
34+
35+
# macOS dependencies
36+
- name: Install macOS dependencies
37+
if: matrix.os == 'macos'
38+
run: |
39+
brew update
40+
brew install autoconf pyenv sdl2 zlib pixman glib gettext pcre2
41+
pyenv install 2.7
42+
43+
# Configure (Linux)
44+
- name: Configure build
45+
if: matrix.os == 'linux'
46+
run: |
47+
./configure \
48+
--with-coroutine=gthread \
49+
--disable-werror \
50+
--disable-mouse \
51+
--disable-cocoa \
52+
--enable-debug \
53+
--enable-sdl \
54+
--with-sdlabi=2.0 \
55+
--target-list=arm-softmmu \
56+
--extra-cflags=-DSTM32_UART_NO_BAUD_DELAY \
57+
--extra-ldflags=-g \
58+
--disable-vnc-jpeg \
59+
--disable-vnc-png \
60+
--disable-curses \
61+
--disable-gnutls \
62+
--disable-nettle \
63+
--disable-libssh2 \
64+
--disable-vnc-sasl \
65+
--disable-gcrypt \
66+
--disable-bzip2 \
67+
--disable-lzo \
68+
--disable-libusb \
69+
--python=/usr/bin/python2.7
70+
71+
# Configure (macOS)
72+
- name: Configure build
73+
if: matrix.os == 'macos'
74+
run: |
75+
./configure \
76+
--with-coroutine=gthread \
77+
--disable-werror \
78+
--disable-mouse \
79+
--disable-cocoa \
80+
--enable-debug \
81+
--enable-sdl \
82+
--with-sdlabi=2.0 \
83+
--target-list=arm-softmmu \
84+
--extra-cflags=-DSTM32_UART_NO_BAUD_DELAY \
85+
--extra-ldflags=-g \
86+
--disable-vnc-jpeg \
87+
--disable-vnc-png \
88+
--disable-curses \
89+
--disable-gnutls \
90+
--disable-nettle \
91+
--disable-libssh2 \
92+
--disable-vnc-sasl \
93+
--disable-gcrypt \
94+
--disable-bzip2 \
95+
--disable-lzo \
96+
--disable-libusb \
97+
--python=/Users/runner/.pyenv/versions/2.7.18/bin/python
98+
99+
- name: Build
100+
run: make
101+
102+
# Package macOS libraries
103+
- name: Package macOS libraries
104+
if: matrix.os == 'macos'
105+
run: |
106+
mkdir -p lib
107+
cp -r pc-bios lib/
108+
cp $(brew --prefix pixman)/lib/libpixman-1.0.dylib lib/
109+
cp $(brew --prefix sdl2)/lib/libSDL2-2.0.0.dylib lib/
110+
cp $(brew --prefix glib)/lib/libgthread-2.0.0.dylib lib/
111+
cp $(brew --prefix glib)/lib/libglib-2.0.0.dylib lib/
112+
cp $(brew --prefix gettext)/lib/libintl.8.dylib lib/
113+
cp $(brew --prefix pcre2)/lib/libpcre2-8.0.dylib lib/
114+
115+
# Upload artifacts
116+
- uses: actions/upload-artifact@v4
117+
with:
118+
name: qemu-system-arm-${{ matrix.os }}-${{ matrix.arch }}
119+
path: arm-softmmu/qemu-system-arm
120+
121+
- uses: actions/upload-artifact@v4
122+
if: matrix.os == 'linux'
123+
with:
124+
name: pc-bios-${{ matrix.os }}-${{ matrix.arch }}
125+
path: pc-bios/
126+
127+
- uses: actions/upload-artifact@v4
128+
if: matrix.os == 'macos'
129+
with:
130+
name: lib-${{ matrix.os }}-${{ matrix.arch }}
131+
path: lib/

0 commit comments

Comments
 (0)