Skip to content

Commit

Permalink
wip: ci for all platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
igrr committed Nov 6, 2023
1 parent 322f2bc commit 6f73f46
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 1 deletion.
137 changes: 137 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: 'build'

on: [push, pull_request]

jobs:
build:
env:
MSYSTEM: MINGW64
CHERE_INVOKING: 'yes'
MSYS: 'winsymlinks:native'
strategy:
fail-fast: false
matrix:
include:
- platform: macos-x86_64
runs_on: macos-12
extra_configure_args: "--disable-cocoa --disable-coreaudio"
shell: bash -e {0}
# - platform: macos-arm64
# 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
runs_on: ubuntu-22.04
extra_configure_args: "--disable-gtk --cross-prefix=aarch64-linux-gnu-"
shell: bash -e {0}
- platform: win-x86_64
runs_on: windows-2022
extra_configure_args: ""
shell: msys2 {0}
runs-on: ${{ matrix.runs_on }}
defaults:
run:
shell: ${{ matrix.shell }}
steps:
- uses: actions/checkout@v3
- name: Install prerequisites (Linux arm64)
if: ${{ matrix.platform == 'linux-arm64' }}
env:
DEBIAN_FRONTEND: "noninteractive"
run: |
sudo cat /etc/apt/apt-mirrors.txt
sudo sed -i '/azure\.archive\.ubuntu\.com/d' /etc/apt/apt-mirrors.txt
sudo cat /etc/apt/apt-mirrors.txt
sudo dpkg --add-architecture arm64
sudo apt-get update || true
sudo apt-get install -q --no-install-recommends \
ninja-build \
crossbuild-essential-arm64 \
binutils-dev:arm64 \
libgcrypt-dev:arm64 \
libglib2.0-dev:arm64 \
libpixman-1-dev:arm64 \
libslirp-dev:arm64
- name: Install prerequisites (Linux x86_64)
if: ${{ matrix.platform == 'linux-amd64' }}
env:
DEBIAN_FRONTEND: "noninteractive"
run: |
sudo apt-get install -y -q --no-install-recommends \
binutils-dev \
ninja-build \
libgcrypt-dev \
libglib2.0-dev \
libpixman-1-dev \
libslirp-dev
- name: Install prerequisites (macOS)
if: ${{ matrix.platform == 'macos-x86_64' || matrix.platform == 'macos-arm64' }}
run: |
brew install \
ninja \
libgcrypt \
glib \
pixman \
pkg-config
- name: Install prerequisites (Windows)
if : ${{ matrix.platform == 'win-x86_64' }}
uses: msys2/setup-msys2@v2
with:
cache: true
msystem: mingw64
install: >-
mingw-w64-x86_64-python
mingw-w64-x86_64-ninja
mingw-w64-x86_64-gcc
mingw-w64-x86_64-glib2
mingw-w64-x86_64-pkg-config
mingw-w64-x86_64-pixman
mingw-w64-x86_64-libgcrypt
mingw-w64-x86_64-libslirp
diffutils git
- name: Sanity check (macOS)
if: ${{ matrix.platform == 'macos-x86_64' || matrix.platform == 'macos-arm64' }}
run: |
which cc || true
which gcc || true
which clang || true
cc --version || true
gcc --version || true
clang --version || true
clang 1.m -o 1
- name: Configure
run: |
./configure \
--prefix=$PWD/install/qemu \
--target-list=xtensa-softmmu \
--with-pkgversion="${{ github.ref_name }}" \
--enable-gcrypt \
--enable-slirp \
--disable-user \
--disable-capstone \
--disable-vnc \
--disable-sdl \
--disable-docs \
${{ matrix.extra_configure_args }} || (cat meson-logs/meson-log.txt && false)
- name: Build
run: |
ninja -C build
- name: Package distribution archive
run: |
ninja -C build install
find install/qemu/share/qemu -maxdepth 1 -mindepth 1 -not -name 'esp*.bin' -exec rm -rf {} \;
mkdir -p dist
export DIST_DIR=${PWD}/dist
export ARCHIVE_NAME=qemu-${{ github.ref_name }}-${{ matrix.platform }}.tar.bz2
cd install
tar cjvf ${DIST_DIR}/${ARCHIVE_NAME} qemu
cd ${DIST_DIR}
shasum -a 256 *.tar.bz2 > ${ARCHIVE_NAME}.sha256
2 changes: 2 additions & 0 deletions 1.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#import<stddef.h>
int main(void) { return 0; }
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
project('qemu', ['c'], meson_version: '>=0.63.0',
project('qemu', ['c', 'objc'], meson_version: '>=0.63.0',
default_options: ['warning_level=1', 'c_std=gnu11', 'cpp_std=gnu++11', 'b_colorout=auto',
'b_staticpic=false', 'stdsplit=false', 'optimization=2', 'b_pie=true'],
version: files('VERSION'))
Expand Down

0 comments on commit 6f73f46

Please sign in to comment.