Skip to content

Commit

Permalink
ci patch
Browse files Browse the repository at this point in the history
Signed-off-by: GitHub Actions Bot <[email protected]>
  • Loading branch information
GitHub Actions Bot committed Oct 23, 2024
1 parent aff3bbb commit eac9424
Show file tree
Hide file tree
Showing 8 changed files with 553 additions and 14 deletions.
297 changes: 297 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
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-windows:
needs: checkapply
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
bison diffutils flex git grep make sed
mingw-w64-x86_64-binutils
mingw-w64-x86_64-ccache
mingw-w64-x86_64-curl
mingw-w64-x86_64-gcc
mingw-w64-x86_64-glib2
mingw-w64-x86_64-libnfs
mingw-w64-x86_64-libssh
mingw-w64-x86_64-ninja
mingw-w64-x86_64-pixman
mingw-w64-x86_64-pkgconf
mingw-w64-x86_64-python
mingw-w64-x86_64-zstd
- run: msys2 -c './configure && ninja -C build'

build-macos-x86_64:
needs: checkapply
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- run: brew install --quiet $(brew deps --include-build qemu)
# on macos, werror is not on by default
- run: ./configure --enable-werror && ninja -C build

build-macos-aarch64:
needs: checkapply
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- run: brew install --quiet $(brew deps --include-build qemu)
# on macos, werror is not on by default
- run: ./configure --enable-werror && ninja -C build

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, 600)/' 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
# add more time for tests
- run: sed -i -e 's/timeout = 120/timeout = 600/' tests/avocado/avocado_qemu/__init__.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"
36 changes: 36 additions & 0 deletions .github/workflows/containers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:

permissions: write-all

jobs:
build_container:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# cd tests/docker/dockerfiles/
# ls *docker | sed -e 's/.docker//' | tr '\n' ','
# remove: debian-bootstrap,debian-toolchain
container: [alpine,centos9,debian-all-test-cross,debian-amd64-cross,debian-arm64-cross,debian-armhf-cross,debian,debian-hexagon-cross,debian-i686-cross,debian-legacy-test-cross,debian-loongarch-cross,debian-mips64el-cross,debian-mipsel-cross,debian-ppc64el-cross,debian-riscv64-cross,debian-s390x-cross,debian-tricore-cross,debian-xtensa-cross,fedora,fedora-rust-nightly,fedora-win64-cross,opensuse-leap,python,ubuntu2204]
steps:
- run: git clone https://gitlab.com/qemu-project/qemu
- run: make -C qemu docker-image-${{matrix.container}} RUNC=podman V=1
- run: podman tag qemu/${{matrix.container}} docker.io/pbolinaro/qemu-ci:${{matrix.container}}
- run: podman login -u pbolinaro -p ${{secrets.DOCKERHUB_PASSWORD}}
- run: podman push docker.io/pbolinaro/qemu-ci:${{matrix.container}}

keepalive-job:
name: Keepalive Workflow
if: ${{ always() }}
needs: build_container
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: gautamkrishnar/keepalive-workflow@v2
with:
use_api: false
40 changes: 40 additions & 0 deletions .github/workflows/new_series.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
on:
schedule:
- cron: '*/10 * * * *'
workflow_dispatch:

permissions: write-all

jobs:
push_new_series:
runs-on: ubuntu-latest
concurrency:
group: push_new_series
cancel-in-progress: true
steps:
- name: checkout
uses: actions/checkout@v3
with:
# a PAT must be generated with workflow permission, else it's not
# possible to push any change for those files
# https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow#triggering-a-workflow-from-a-workflow
token: ${{ secrets.WORKFLOW_COMMIT_TOKEN }}
- run: git fetch -a origin --unshallow || true
- run: git config user.name "GitHub Actions Bot"
- run: git config user.email "<[email protected]>"
- run: git config advice.detachedHead false
- run: sudo pip install b4
- run: ./push_new_series.sh

keepalive-job:
name: Keepalive Workflow
if: ${{ always() }}
needs: push_new_series
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: gautamkrishnar/keepalive-workflow@v2
with:
use_api: false
Loading

0 comments on commit eac9424

Please sign in to comment.