io: implement dirCreateFileAtomic #1697
Workflow file for this run
This file contains hidden or 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
| 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: 'io_uring epoll poll' } | |
| - { os: ubuntu-24.04-arm, target: native, backends: '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: 'epoll poll' } | |
| - { os: ubuntu-latest, target: thumb-linux, qemu: true, backends: 'epoll poll' } | |
| - { os: ubuntu-latest, target: riscv32-linux, qemu: true, backends: 'epoll poll' } | |
| - { os: ubuntu-latest, target: riscv64-linux, qemu: true, backends: 'epoll poll' } | |
| - { os: ubuntu-latest, target: loongarch64-linux, qemu: true, backends: 'epoll poll' } | |
| - { os: ubuntu-latest, target: powerpc64le-linux, qemu: true, backends: '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' } | |
| 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: Apply Zig stdlib patches | |
| run: ./patches/apply-zig-patches.sh | |
| - 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 |