Skip to content

Commit

Permalink
ci
Browse files Browse the repository at this point in the history
Signed-off-by: Pierrick Bouvier <[email protected]>
  • Loading branch information
pbo-linaro committed Oct 20, 2024
1 parent 419642b commit f4f4f9b
Showing 1 changed file with 253 additions and 0 deletions.
253 changes: 253 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
on: push

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
checkapply:
runs-on: ubuntu-latest
steps:
# to debug container live from GitHub
# - uses: mxschmitt/action-tmate@v3
- name: checkout
uses: actions/checkout@v4
- run: bash -c '[ ! -f shazam.log ] || { cat shazam.log; exit 1; }'

checkpatch-ignore-signoff:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: fetch all commits
run: git fetch -a origin --unshallow || true
- name: add upstream
run: git remote add upstream -f https://gitlab.com/qemu-project/qemu
- name: checkpatch
run: ./scripts/checkpatch.pl --no-signoff $(git merge-base upstream/master HEAD)..HEAD

checkpatch-with-signoff:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: fetch all commits
run: git fetch -a origin --unshallow || true
- name: add upstream
run: git remote add upstream -f https://gitlab.com/qemu-project/qemu
- name: checkpatch
run: ./scripts/checkpatch.pl $(git merge-base upstream/master HEAD)..HEAD

# use docker-run to not rebuild images
# images are built daily and pushed on pbolinaro/qemu-ci:*

build-cross:
needs: checkapply
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container: [alpine,centos9,debian,debian-all-test-cross,debian-amd64-cross,debian-arm64-cross,debian-armhf-cross,debian-hexagon-cross,debian-i686-cross,debian-legacy-test-cross,debian-mips64el-cross,debian-mipsel-cross,debian-ppc64el-cross,debian-s390x-cross,debian-tricore-cross,fedora,fedora-rust-nightly,opensuse-leap,ubuntu2204]
steps:
- name: checkout
uses: actions/checkout@v4
- run: pip install meson
- run: make docker-run J=$(nproc) TEST=test-build IMAGE=pbolinaro/qemu-ci:${{matrix.container}}

build:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
build-misc:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --disable-user --disable-system --enable-docs --enable-tools && ninja -C build install'
build-32bits:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-i686-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
build-big-endian:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-s390x-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
build-debug:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --enable-debug --enable-asan --enable-ubsan && ninja -C build install'
build-static:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --disable-system --disable-tools --disable-guest-agent --disable-docs --static && ninja -C build install'
build-clang:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx 'apt update && apt install -y clang && ./configure $QEMU_CONFIGURE_OPTS --cxx=clang++ --cc=clang --host-cc=clang && ninja -C build install'
build-rust:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:fedora-rust-nightly
bash -cx './configure $QEMU_CONFIGURE_OPTS --enable-rust && ninja -C build install'
build-disable-tcg:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --disable-tcg && ninja -C build install'
build-disable-kvm:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --disable-kvm && ninja -C build install'
build-disable-tcg-kvm-for-xen:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --disable-tcg --disable-kvm && ninja -C build install'
check:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
- run: sudo chown $USER:$USER /dev/kvm
- run: >
podman run --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx "make check -k -j1"
check-tcg:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
# flaky test: signals on some architecture - skip
- run: rm ./tests/tcg/multiarch/signals.c
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-all-test-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS --enable-debug --enable-asan --enable-ubsan && ninja -C build install'
- run: >
podman run --privileged --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-all-test-cross
bash -cx "make check-tcg -k -j1"
check-functional:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
# deactivate one test that needs sound card
# GitHub runners don't have sound support, and it's not possible to load a
# snd-dummy module to add it.
- run: sed -i -e '/m68k_q800/d' tests/functional/meson.build
# add more time for tests
- run: sed -i -e 's/test_timeouts.get(test, 60)/test_timeouts.get(test, 120)/' tests/functional/meson.build
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
- run: sudo chown $USER:$USER /dev/kvm
- run: >
podman run --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx "make check-functional -k -j1"
check-avocado:
needs: checkapply
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
# deactivate one test that needs sound card
# GitHub runners don't have sound support, and it's not possible to load a
# snd-dummy module to add it.
- run: sed -i -e '/test_m68k_q800/,+17d' tests/avocado/replay_kernel.py
- run: >
podman run --rm -it -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx './configure $QEMU_CONFIGURE_OPTS && ninja -C build install'
- run: sudo chown $USER:$USER /dev/kvm
- run: >
podman run --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd)
docker.io/pbolinaro/qemu-ci:debian-amd64-cross
bash -cx "make check-avocado -k -j1"

0 comments on commit f4f4f9b

Please sign in to comment.