Skip to content

Commit

Permalink
wip: ci linux matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
antmak committed Nov 8, 2023
1 parent 398489c commit 7517c0b
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 22 deletions.
34 changes: 24 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [x86_64-linux-gnu, aarch64-linux-gnu]
#target: [xtensa-softmmu, riscv32-softmmu]

include:
#- platform: macos-x86_64
# runs_on: macos-12
Expand All @@ -20,15 +23,15 @@ jobs:
# runs_on: macos-latest-xlarge
# extra_configure_args: "--disable-cocoa --disable-coreaudio"
# shell: bash -e {0}
# - platform: linux-amd64
# runs_on: ubuntu-20.04
# # Building with -Werror only on Linux as that breaks some features detection
# # in meson on macOS.
# extra_configure_args: "--extra-cflags=-Werror --disable-gtk"
# shell: bash -e {0}
- platform: linux-arm64
- platform: x86_64-linux-gnu
runs_on: ubuntu-20.04
# Used the blank docker-hub's image instead of the heavy GitHub's one for correct croossbuild prerequisites
# Building with -Werror only on Linux as that breaks some features detection
# in meson on macOS.
#extra_configure_args: "--extra-cflags=-Werror --disable-gtk"
shell: bash -e {0}
- platform: aarch64-linux-gnu
runs_on: ubuntu-20.04
# Used the minimal docker-hub's image instead of the heavy GitHub's one for correct croossbuild prerequisites
container: ubuntu:20.04
#extra_configure_args: "--disable-gtk --cross-prefix=aarch64-linux-gnu-"
shell: bash -e {0}
Expand All @@ -44,8 +47,13 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install prerequisites (Linux x86_64)
if: ${{ matrix.platform == 'x86_64-linux-gnu' }}
run: |
./.github/workflows/scripts/prerequisites-linux-amd64.sh
- name: Install prerequisites (Linux arm64)
if: ${{ matrix.platform == 'linux-arm64' }}
if: ${{ matrix.platform == 'aarch64-linux-gnu' }}
run: |
./.github/workflows/scripts/prerequisites-cross-linux-arm64.sh
Expand Down Expand Up @@ -93,8 +101,14 @@ jobs:
# if: ${{ matrix.platform == 'macos-x86_64' || matrix.platform == 'macos-arm64' }}
# run: |
# sed -i '' "s/project('qemu', \['c'\],/project('qemu', ['c', 'objc'],/" meson.build

- name: Configure (Linux x86_64)
if: ${{ matrix.platform == 'x86_64-linux-gnu' }}
run: |
./.github/workflows/scripts/configure-cross-linux-arm64.sh
- name: Configure (Linux arm64)
if: ${{ matrix.platform == 'linux-arm64' }}
if: ${{ matrix.platform == 'aarch64-linux-gnu' }}
run: |
./.github/workflows/scripts/configure-cross-linux-arm64.sh
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/scripts/configure-cross-linux-arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
sed -z -i "s/\(.*dependency('libgcrypt'.*method: '\)config-tool\('.*\)/\1pkg-config\2/g" -- meson.build

./configure \
--prefix=$PWD/install/qemu \
--target-list=xtensa-softmmu \
--with-pkgversion="esp_13.1.1_20231107" \
--enable-gcrypt \
--enable-slirp \
--disable-user \
--cross-prefix=aarch64-linux-gnu- \
--disable-capstone \
--disable-vnc \
--disable-sdl \
--disable-docs \
--disable-gtk \
--cross-prefix=aarch64-linux-gnu- \
--disable-sdl \
--disable-user \
--disable-vnc \
--enable-gcrypt \
--enable-slirp \
--prefix=$PWD/install/qemu \
--target-list=xtensa-softmmu \
--with-pkgversion="esp_13.1.1_20231107" \
|| { cat meson-logs/meson-log.txt && false; }
18 changes: 18 additions & 0 deletions .github/workflows/scripts/configure-linux-amd64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

#FIXME ? disable-docs

./configure \
--disable-capstone \
--disable-docs \
--disable-gtk \
--disable-sdl \
--disable-user \
--disable-vnc \
--enable-gcrypt \
--enable-slirp \
--extra-cflags=-Werror \
--prefix=$PWD/install/qemu \
--target-list=xtensa-softmmu \
--with-pkgversion="esp_13.1.1_20231107" \
|| { cat meson-logs/meson-log.txt && false; }
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ apt-get update \
&& :

# ?
/usr/bin/pip3 install meson
/usr/bin/pip3 install meson==1.2.3
19 changes: 19 additions & 0 deletions .github/workflows/scripts/prerequisites-linux-amd64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

export DEBIAN_FRONTEND="noninteractive"

apt-get update \
&& apt-get install -y -q --no-install-recommends \
build-essential \
git \
libgcrypt-dev \
libglib2.0-dev \
libpixman-1-dev \
libslirp-dev \
ninja-build \
python3-pip \
wget \
zlib1g-dev \
&& :

/usr/bin/pip3 install meson==1.2.3
4 changes: 2 additions & 2 deletions .github/workflows/scripts/prerequisites-linux-arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
export DEBIAN_FRONTEND="noninteractive"

apt-get update \
&& apt-get install -y -q \
&& apt-get install -y -q --no-install-recommends\
build-essential \
git \
libgcrypt-dev \
Expand All @@ -16,4 +16,4 @@ apt-get update \
zlib1g-dev \
&& :

/usr/bin/pip3 install meson
/usr/bin/pip3 install meson==1.2.3

0 comments on commit 7517c0b

Please sign in to comment.