diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6dca592e7..6dbdf7186 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -742,6 +742,72 @@ jobs: - name: Test run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) + clang-docker: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + include: + - version: "19" + container: ubuntu:24.10 + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default + - version: "19" + distro: ubuntu:24.10 + arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled + ccache: 'true' + - version: "19" + distro: ubuntu:24.10 + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default -O2 + - version: "20" + container: debian:experimental + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default + - version: "20" + distro: debian:experimental + arch_flags: -ffast-math -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-nan-infinity-disabled + ccache: 'true' + - version: "20" + distro: debian:experimental + arch_flags: -march=native -Wno-unsafe-buffer-usage -Wno-switch-default -O2 + container: + image: amd64/${{ matrix.container }} + env: + CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions + CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions + steps: + - run: sudo apt-get update + - name: Install git + run: | + sudo apt-get install -y --no-install-recommends git ca-certificates + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: CPU Information + run: cat /proc/cpuinfo + - name: Install APT Dependencies + run: | + sudo apt-get update + sudo apt-get -y --no-install-recommends install gcovr ninja-build pipx \ + clang-${{ matrix.version }} + pipx install meson==0.55.1 + sudo rm /usr/bin/gcc /usr/bin/g++ /usr/bin/cc /usr/bin/c++ + sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/cc + sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/c++ + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + if: ${{ matrix.ccache == 'true' }} + with: + key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }} + - name: add ccache to the build path + if: ${{ matrix.ccache == 'true' }} + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + - name: Configure + run: meson setup build + - name: Build + run: meson compile -C build --verbose + - name: Test + run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) + macos: strategy: fail-fast: false