-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Pierrick Bouvier <[email protected]>
- Loading branch information
1 parent
419642b
commit f4f4f9b
Showing
1 changed file
with
253 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |