Skip to content

Refill run queue directly from overflow #2497

Refill run queue directly from overflow

Refill run queue directly from overflow #2497

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
tags:
pull_request:
jobs:
test:
strategy:
fail-fast: false
matrix:
zig_version: ['0.16.0']
mode: [debug, release]
config:
- { os: ubuntu-24.04, target: native, backends: 'linux io_uring epoll poll' }
- { os: ubuntu-24.04-arm, target: native, backends: 'linux io_uring epoll poll' }
- { os: macos-latest, target: native, backends: 'kqueue poll' }
- { os: macos-15-intel, target: native, backends: 'kqueue poll' }
- { os: windows-latest, target: native, backends: 'iocp poll' }
- { os: ubuntu-latest, target: arm-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: thumb-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: x86-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: riscv32-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: riscv64-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: loongarch64-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: powerpc64le-linux, qemu: true, backends: 'linux epoll poll' }
- { os: ubuntu-latest, target: x86_64-freebsd, vm: freebsd, backends: 'kqueue poll' }
- { os: ubuntu-latest, target: x86_64-netbsd, vm: netbsd, backends: 'kqueue poll' }
- { os: ubuntu-latest, target: x86_64-openbsd, vm: openbsd, backends: 'kqueue poll' }
runs-on: ${{ matrix.config.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Zig
uses: mlugg/setup-zig@v2
with:
version: ${{ matrix.zig_version }}
- name: Install QEMU
if: matrix.config.qemu
run: |
sudo apt-get update -q -y
sudo apt-get install -q -y qemu-user-static
- name: Build and test for each backend
shell: bash
run: |
for backend in ${{ matrix.config.backends }}; do
echo "Building with backend: $backend"
./check.sh --full --backend $backend \
${{ matrix.config.target != 'native' && format('--target {0}', matrix.config.target) || '' }} \
${{ matrix.config.qemu && '--qemu' || '' }} \
${{ matrix.config.vm && '--no-exec' || '' }} \
${{ matrix.mode == 'release' && '--release' || '' }}
if [ -n "${{ matrix.config.vm }}" ]; then
cp zig-out/bin/test zig-out/bin/test-$backend
fi
done
timeout-minutes: 10
env:
TEST_VERBOSE: 2
- name: Run tests (FreeBSD VM)
if: matrix.config.vm == 'freebsd'
uses: vmactions/freebsd-vm@v1
timeout-minutes: 20
with:
envs: 'TEST_VERBOSE'
run: |
for test in zig-out/bin/test-*; do
echo "Running $test"
./$test
done
env:
TEST_VERBOSE: 2
- name: Run tests (NetBSD VM)
if: matrix.config.vm == 'netbsd'
uses: vmactions/netbsd-vm@v1
timeout-minutes: 20
with:
release: '10.1'
envs: 'TEST_VERBOSE'
run: |
for test in zig-out/bin/test-*; do
echo "Running $test"
./$test
done
env:
TEST_VERBOSE: 2
- name: Run tests (OpenBSD VM)
if: matrix.config.vm == 'openbsd'
uses: vmactions/openbsd-vm@v1
timeout-minutes: 20
with:
envs: 'TEST_VERBOSE'
run: |
# OpenBSD's default per-process fd limit is low; the max-executors
# test opens a loop (and waker fds) per executor and needs more.
ulimit -n 4096
for test in zig-out/bin/test-*; do
echo "Running $test"
./$test
done
env:
TEST_VERBOSE: 2