# See also https://docs.github.com/en/actions/learn-github-actions/expressions # See also https://github.com/marketplace/actions/setup-android-ndk name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: build: - android - linux-gcc - linux-clang - linux-x86-gcc - linux-powerpc64-gcc - linux-mingw64-gcc - macos include: - build: android cc: clang host: aarch64-linux-android32 - build: linux-gcc cc: gcc - build: linux-clang cc: clang - build: linux-x86-gcc cc: gcc arch: x86 - build: linux-powerpc64-gcc cc: gcc host: powerpc64-linux-gnu - build: linux-mingw64-gcc cc: gcc host: x86_64-w64-mingw32 - build: macos cc: clang os: macos-latest steps: - uses: actions/checkout@v3 - name: Install Android NDK run: | if [ ${{matrix.build}} = android ]; then \ wget --quiet https://dl.google.com/android/repository/android-ndk-r24-linux.zip; \ unzip -q android-ndk-r24-linux.zip; \ fi - name: Install Ubuntu packages run: | sudo apt-get -q update case "${{matrix.host}}" in \ x86_64-w64-mingw32) \ sudo apt-get -q install -y binutils-mingw-w64 gcc-mingw-w64;; \ powerpc64-linux-gnu) \ sudo apt-get -q install -y binutils-powerpc64-linux-gnu \ gcc-powerpc64-linux-gnu;; \ esac - name: Build run: | echo "HOST=${{matrix.host}}" NDK=$PWD/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/bin export PATH="$NDK:$PATH" ./autogen.sh ./configure --host=${{matrix.host}} \ CC=${{ matrix.host && format('{0}-{1}', matrix.host, matrix.cc) || matrix.cc }} \ CFLAGS="-Wall -Wextra -Werror -Wno-sign-compare -Wno-unused-function -Wno-unused-parameter ${{matrix.cflags}}" make -j$(nproc)