1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
name: native and cross
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
release:
- "ubuntu:22.04"
- "ubuntu:24.04"
- "ubuntu:rolling"
- "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 apt update
podman exec -e DEBIAN_FRONTEND='noninteractive' -i -u root stable apt install -o APT::Install-Suggests=false -qy ${release} \
clang \
cmake \
pkg-config \
gcc \
gcc-aarch64-linux-gnu \
gcc-arm-linux-gnueabihf \
gcc-mips-linux-gnu \
libncurses-dev \
fftw-dev \
libfftw3-dev \
gettext \
libssl-dev
- name: Configure & Build with gcc (minimal configuration)
env:
cc: gcc
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=OFF -DUSE_FFTW3=OFF -DUSE_SSL=OFF -DUSE_GETTEXT=OFF
podman exec -i stable cmake --build build-${cc}
- name: Configure & Build with gcc (SSL support)
env:
cc: gcc
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=OFF -DUSE_FFTW3=OFF -DUSE_SSL=ON -DUSE_GETTEXT=OFF
podman exec -i stable cmake --build build-${cc}
- name: Configure & Build with gcc (full TUI support)
env:
cc: gcc
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=ON -DUSE_FFTW3=ON -DUSE_SSL=OFF -DUSE_GETTEXT=OFF
podman exec -i stable cmake --build build-${cc}
- name: Configure & Build with gcc (full TUI support and SSL)
env:
cc: gcc
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=ON -DUSE_FFTW3=ON -DUSE_SSL=ON -DUSE_GETTEXT=OFF
podman exec -i stable cmake --build build-${cc}
- name: Configure & Build with gcc (full TUI support, SSL, and gettext)
env:
cc: gcc
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=ON -DUSE_FFTW3=ON -DUSE_SSL=ON -DUSE_GETTEXT=ON
podman exec -i stable cmake --build build-${cc}
- name: Configure & Build with clang (minimal configuration)
env:
cc: clang
run: |
podman exec -i --env CC=${cc} stable cmake -B build-${cc} -DUSE_TUI=OFF -DUSE_FFTW3=OFF -DUSE_SSL=OFF -DUSE_GETTEXT=OFF
podman exec -i stable cmake --build build-${cc}
|