name: CI Pkgcheck on: [push, pull_request] jobs: ci-pkgcheck: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - name: Ubuntu GCC os: ubuntu-latest compiler: gcc - name: Ubuntu GCC -m32 os: ubuntu-latest compiler: gcc packages: gcc-multilib cmake-args: -DCMAKE_C_FLAGS=-m32 cflags: -m32 ldflags: -m32 - name: Ubuntu GCC ARM HF os: ubuntu-latest chost: arm-linux-gnueabihf compiler: arm-linux-gnueabihf-gcc cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DCMAKE_C_COMPILER_TARGET=arm-linux-gnueabihf packages: qemu gcc-arm-linux-gnueabihf libc6-dev-armhf-cross - name: Ubuntu GCC AARCH64 os: ubuntu-latest chost: aarch64-linux-gnu compiler: aarch64-linux-gnu-gcc cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake packages: qemu gcc-aarch64-linux-gnu libc6-dev-arm64-cross - name: Ubuntu GCC PPC os: ubuntu-latest chost: powerpc-linux-gnu compiler: powerpc-linux-gnu-gcc cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake packages: qemu gcc-powerpc-linux-gnu libc6-dev-powerpc-cross - name: Ubuntu GCC PPC64LE os: ubuntu-latest chost: powerpc64le-linux-gnu compiler: powerpc64le-linux-gnu-gcc cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake packages: qemu gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross - name: macOS Clang os: macOS-latest compiler: clang steps: - name: Checkout repository uses: actions/checkout@v1 - name: Install packages (Ubuntu) if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y --no-install-recommends abigail-tools ninja-build diffoscope ${{ matrix.packages }} - name: Install packages (macOS) if: runner.os == 'macOS' run: | brew install ninja diffoscope ${{ matrix.packages }} env: HOMEBREW_NO_INSTALL_CLEANUP: 1 - name: Select Xcode version (macOS) # Use a version of Xcode that supports ZERO_AR_DATE until CMake supports # AppleClang linking with libtool using -D argument # https://gitlab.kitware.com/cmake/cmake/-/issues/19852 if: runner.os == 'macOS' uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '12.1.1' - name: Compare builds run: | sh test/pkgcheck.sh env: CC: ${{ matrix.compiler }} CFLAGS: ${{ matrix.cflags }} CHOST: ${{ matrix.chost }} CMAKE_ARGS: ${{ matrix.cmake-args }} LDFLAGS: ${{ matrix.ldflags }} - name: Compare builds (compat) run: | sh test/pkgcheck.sh --zlib-compat env: CC: ${{ matrix.compiler }} CFLAGS: ${{ matrix.cflags }} CHOST: ${{ matrix.chost }} CMAKE_ARGS: ${{ matrix.cmake-args }} LDFLAGS: ${{ matrix.ldflags }} - name: Check ABI # macOS runner does not contain abigail if: runner.os != 'macOS' run: | sh test/abicheck.sh --refresh_if env: CC: ${{ matrix.compiler }} CFLAGS: ${{ matrix.cflags }} CHOST: ${{ matrix.chost }} LDFLAGS: ${{ matrix.ldflags }} - name: Check ABI (compat) # macOS runner does not contain abigail if: runner.os != 'macOS' run: | sh test/abicheck.sh --zlib-compat --refresh_if env: CC: ${{ matrix.compiler }} CFLAGS: ${{ matrix.cflags }} CHOST: ${{ matrix.chost }} LDFLAGS: ${{ matrix.ldflags }}