Add some coverage exclusions #1596
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: [master, stable, next] | |
| pull_request: | |
| branches: [master, stable, next] | |
| workflow_dispatch: | |
| jobs: | |
| tcc: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get install -y build-essential libtool autoconf automake tcc | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with tcc | |
| run: | | |
| env CC=tcc CFLAGS='-w' CPPFLAGS="-DDEV_MODE=1" ./configure --prefix=/tmp --disable-dependency-tracking --disable-shared || cat config.log | |
| make -j $(nproc) && make check && make install | |
| env CC=tcc CPPFLAGS='-I/tmp/include' LDFLAGS='-L/tmp/lib' LD_LIBRARY_PATH='/tmp/lib' ./test/constcheck.sh | |
| make uninstall | |
| make distclean | |
| zig: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: 0.15.2 | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with zig | |
| run: | | |
| zig build | |
| zig build -Dtarget=x86_64-linux | |
| zig build -Dtarget=aarch64-linux | |
| zig build -Dtarget=x86-windows | |
| zig build -Dtarget=x86_64-windows | |
| zig build -Dtarget=aarch64-windows | |
| zig build -Dtarget=x86_64-macos | |
| zig build -Dtarget=aarch64-macos | |
| zig build -Dtarget=x86_64-freebsd | |
| zig build -Dtarget=aarch64-freebsd | |
| zig build -Dtarget=wasm32-wasi | |
| zig build -Doptimize=ReleaseFast | |
| rm -fr zig-cache zig-out | |
| regular: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: C99 compat check | |
| run: | | |
| env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) CFLAGS='-g0' > /dev/null && cp src/libsodium/.libs/libsodium.so lib.so && make clean > /dev/null && make CFLAGS='-g0' CPPFLAGS='-DDEV_MODE=1 -DSODIUM_C99\(X\)=' > /dev/null && cp src/libsodium/.libs/libsodium.so lib-oldc.so && cmp lib.so lib-oldc.so && echo No binary changes && make clean > /dev/null | |
| make distcheck | |
| make distclean > /dev/null | |
| - name: Regular compilation | |
| run: | | |
| env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --enable-minimal | |
| make -j $(nproc) | |
| make check | |
| ( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c | |
| make distclean > /dev/null | |
| check-globals: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Check globals | |
| run: | | |
| if [ -x test/rename-globals.sh ]; then test/rename-globals.sh; fi | |
| other-comp: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake clang | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with g++ | |
| run: | | |
| env CC=g++ CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) check | |
| make clean > /dev/null | |
| - name: Compilation with clang | |
| run: | | |
| env CC=clang CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) check | |
| make clean > /dev/null | |
| other-arch: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake gcc-powerpc-linux-gnu | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Big-Endian PowerPC compilation | |
| run: | | |
| env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu | |
| make -j $(nproc) | |
| make clean > /dev/null | |
| wasi: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Zig | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: master | |
| - name: Install Wasmer | |
| uses: wasmerio/setup-wasmer@v3.1 | |
| - name: Build for wasi-core | |
| run: zig build -Dtarget=wasm32-wasi -Doptimize=ReleaseSafe | |
| - name: Run tests with Wasmer | |
| run: | | |
| cd zig-out/bin | |
| failed=0 | |
| for wasm in *.wasm; do | |
| name="${wasm%.wasm}" | |
| echo "[$name]" | |
| if ! wasmer run "$wasm" --volume=./:. 2>&1; then | |
| echo "*** [$name] FAILED" >&2 | |
| failed=1 | |
| fi | |
| done | |
| exit $failed | |
| aarch64-gcc: | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with GCC on aarch64 | |
| run: | | |
| env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) | |
| make check | |
| make distclean > /dev/null | |
| aarch64-gcc-crypto: | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with GCC on aarch64 with NEON and ARM Crypto extensions | |
| run: | | |
| env CFLAGS="-march=armv8-a+crypto" CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) | |
| make check | |
| make distclean > /dev/null | |
| aarch64-gcc-sha3: | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| run: sudo apt-get install -y build-essential libtool autoconf automake | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Compilation with GCC on aarch64 with NEON, ARM Crypto, and SHA3 extensions | |
| run: | | |
| env CFLAGS="-march=armv8-a+crypto+sha3" CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking | |
| make -j $(nproc) | |
| make check | |
| make distclean > /dev/null | |
| android: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Update packages list | |
| run: sudo apt-get update | |
| - name: Install base dependencies | |
| run: sudo apt-get install -y libtool autoconf automake unzip | |
| - name: Autogen | |
| run: ./autogen.sh -s | |
| - name: Install Android NDK | |
| run: | | |
| mkdir /tmp/android && cd /tmp/android | |
| curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r29-linux.zip | |
| unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk | |
| - name: Android compilation | |
| run: | | |
| env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-aar.sh |