name: ci on: push: branches: [master] paths: - '.github/workflows/ci.yml' - '*.h' - '*.c' pull_request: branches: [master] paths: - '.github/workflows/ci.yml' - '*.h' - '*.c' concurrency: group: ci-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: ubuntu: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: build-test run: | gcc main.c -o ruapu ./ruapu - name: build-test-clang run: | clang main.c -o ruapu-clang ./ruapu-clang - name: build-test-python run: | python3 -m pip install pip -U python3 -m pip install setuptools -U cd python pip3 install . python3 -c 'import ruapu; print(ruapu.supports("neon")); print(ruapu.supports(isa="avx"))' - name: build-test-rust run: | rustup update stable rustup default stable cd rust cargo build --verbose cargo test --verbose macos: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: build-test run: | clang main.c -o ruapu ./ruapu - name: build-test-python run: | python3 -m pip install pip -U python3 -m pip install setuptools -U cd python pip3 install . python3 -c 'import ruapu; print(ruapu.supports("neon")); print(ruapu.supports(isa="avx"))' - name: build-test-rust run: | rustup update stable rustup default stable cd rust cargo build --verbose cargo test --verbose macos-arm64: runs-on: macos-14 steps: - uses: actions/checkout@v4 - name: build-test run: | clang main.c -o ruapu ./ruapu - name: build-test-python run: | python3 -m pip install pip -U python3 -m pip install setuptools -U cd python pip3 install . python3 -c 'import ruapu; print(ruapu.supports("neon")); print(ruapu.supports(isa="avx"))' - name: build-test-rust run: | rustup update stable rustup default stable cd rust cargo build --verbose cargo test --verbose windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: ilammy/msvc-dev-cmd@v1 - name: build-test run: | cl.exe /Fe: ruapu.exe main.c .\ruapu.exe - name: build-test-mingw shell: bash run: | gcc main.c -o ruapu-mingw.exe ./ruapu-mingw.exe - name: build-test-python run: | python3 -m pip install pip -U python3 -m pip install setuptools -U cd python pip3 install . python3 -c 'import ruapu; print(ruapu.supports("neon")); print(ruapu.supports(isa="avx"))' - name: build-test-rust run: | rustup update stable rustup default stable cd rust cargo build --verbose cargo test --verbose qemu: runs-on: ubuntu-latest strategy: fail-fast: false matrix: arch: [ arm, arm64, mips64le, ppc64le, riscv64, s390x ] steps: - uses: actions/checkout@v4 - name: setup-qemu uses: docker/setup-qemu-action@v3 with: platforms: linux/${{ matrix.arch }} - name: build-test run: | docker run -u root --rm -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} --platform linux/${{ matrix.arch }} debian:unstable-slim \ /bin/bash -c "apt update && apt install -y build-essential && gcc main.c -o ruapu && ./ruapu"