github-actions: install libgps-dev #65
This file contains 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: native and cross | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
release: | |
- "ubuntu:20.04" | |
- "ubuntu:22.04" | |
- "ubuntu:24.04" | |
- "ubuntu:rolling" | |
- "debian:oldstable-slim" | |
- "debian:stable-slim" | |
- "debian:testing-slim" | |
- "debian:unstable-slim" | |
- "debian:experimental" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare ${{ matrix.release }} container | |
env: | |
release: ${{ matrix.release == 'debian:experimental' && '-t experimental' || '' }} | |
run: | | |
podman version | |
podman run --name stable -di --userns=keep-id:uid=1000,gid=1000 -v "$PWD":/home -w /home ${{ matrix.release }} bash | |
podman exec -i stable uname -a | |
podman exec -i stable id | |
podman exec -i -u root stable dpkg --add-architecture arm64 | |
podman exec -i -u root stable dpkg --add-architecture armhf | |
podman exec -i -u root stable apt update | |
podman exec -e DEBIAN_FRONTEND='noninteractive' -i -u root stable apt install -o APT::Install-Suggests=false -qy ${release} \ | |
clang \ | |
cmake \ | |
gcc \ | |
gcc-aarch64-linux-gnu \ | |
gcc-arm-linux-gnueabihf \ | |
gcc-mips-linux-gnu \ | |
libgps-dev \ | |
libgps-dev:arm64 \ | |
libgps-dev:armhf \ | |
make | |
- name: Configure & Build with gcc | |
env: | |
cc: gcc | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=${cc} -DENABLE_WERROR=ON -B build-${cc} | |
podman exec -i stable cmake --build build-${cc} | |
- name: Configure & Build with clang | |
env: | |
cc: clang | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=${cc} -DENABLE_WERROR=ON -B build-${cc} | |
podman exec -i stable cmake --build build-${cc} | |
- name: Configure & Build with arm-linux-gnueabihf-gcc | |
env: | |
toolchain: arm-linux-gnueabihf-gcc | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -DENABLE_WERROR=ON -B build-${toolchain} | |
podman exec -i stable cmake --build build-${toolchain} | |
- name: Configure & Build with arm-linux-gnueabihf-clang | |
if: | |
${{ matrix.release != 'ubuntu:20.04' && matrix.release != 'debian:oldstable-slim' }} | |
env: | |
toolchain: arm-linux-gnueabihf-clang | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -DENABLE_WERROR=ON -B build-${toolchain} | |
podman exec -i stable cmake --build build-${toolchain} | |
- name: Configure & Build with aarch64-linux-gnu-gcc | |
env: | |
toolchain: aarch64-linux-gnu-gcc | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -DENABLE_WERROR=ON -B build-${toolchain} | |
podman exec -i stable cmake --build build-${toolchain} | |
- name: Configure & Build with aarch64-linux-gnu-clang | |
if: | |
${{ matrix.release != 'ubuntu:20.04' && matrix.release != 'debian:oldstable-slim' }} | |
env: | |
toolchain: aarch64-linux-gnu-clang | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -DENABLE_WERROR=ON -B build-${toolchain} | |
podman exec -i stable cmake --build build-${toolchain} | |
- name: Configure & Build with mips-linux-gnu-gcc | |
env: | |
toolchain: mips-linux-gnu-gcc | |
run: | | |
podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -DENABLE_WERROR=ON -B build-${toolchain} | |
podman exec -i stable cmake --build build-${toolchain} | |
- name: Show logs | |
if: ${{ failure() }} | |
run: | | |
for log in build-*/CMakeFiles/{CMakeOutput.log,CMakeConfigureLog.yaml}; do \ | |
if [ -e ${log} ]; then \ | |
echo "---------------- ${log} ----------------"; \ | |
cat ${log}; \ | |
fi; \ | |
done |