Skip to content

Builds

Builds #43

Workflow file for this run

# SPDX-License-Identifier: BSD-3-Clause
#
# Copyright (c) 2023 Linaro Ltd.
#
name: "Builds"
on:
pull_request:
push:
schedule:
# Run periodically to check that it still compiles
- cron: '13 13 * * 1'
workflow_dispatch:
jobs:
job:
name: Build
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
strategy:
fail-fast: false
matrix:
container:
- debian:testing
- debian:bookworm
#- debian:bullseye
#- debian:buster
- ubuntu:lunar
- ubuntu:jammy
#- ubuntu:focal
#- ubuntu:bionic
#- ubuntu:xenial
target:
- native
- aarch64-linux-gnu
- arm-linux-gnueabihf
container:
image: ${{ matrix.container }}
steps:
- name: Git checkout
uses: actions/checkout@v3
- name: Install meson
run: |
apt update
apt -y install --no-install-recommends meson build-essential
- name: Install cross-compilers
if: matrix.target != 'native'
run: |
apt -y install gcc-${{ matrix.target }}
FAMILY=$(echo ${{ matrix.target }} | cut -d- -f 1)
if [ "${FAMILY}" = "aarch64" ] ; then
CPU="arm64"
elif [ "${FAMILY}" = "arm" ] ; then
CPU="arm"
else
echo "Unknown CPU family ${FAMILY}"
exit 1
fi
cat > cross.txt << EOF
[binaries]
c = '${{ matrix.target }}-gcc'
strip = '${{ matrix.target }}-strip'
pkgconfig = 'pkg-config'
[host_machine]
system = 'linux'
cpu_family = '${FAMILY}'
cpu = 'arm64'
endian = 'litle'
[properties]
pkg_config_libdir = '/usr/lib/${{ matrix.target }}/pkgconfig'
EOF
cat cross.txt
- name: Build
run: |
if [ ${{ matrix.target }} = "native" ] ; then
meson setup . build --werror
else
meson setup --cross-file cross.txt . build --werror
fi
ninja -C build
ninja -C build install