Files
cdba/.github/workflows/ci.yml
Dmitry Baryshkov b6ef0718d4 ci: install pkg-config or pkgconf
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2023-09-21 16:37:48 +03:00

189 lines
5.7 KiB
YAML

# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2021 Canonical Ltd.
# Copyright (c) 2023 Linaro Ltd
# Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
# <krzk@kernel.org>
#
# Loosely based on: https://github.com/linux-test-project/ltp
# https://github.com/linux-nfc/neard
#
name: "Builds"
on: [push, pull_request, workflow_dispatch]
jobs:
job:
name: Build
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
strategy:
fail-fast: false
matrix:
arch: [x86-64]
compiler: [gcc, clang]
container:
- archlinux:latest
- debian:testing
- debian:stable
- debian:bookworm
- debian:bullseye
- debian:buster
# Fails on configure on GCC and clang (process restrictions?)
# - fedora:rawhide
- fedora:latest
- fedora:39
- fedora:38
- fedora:37
- ubuntu:lunar # EOL 01.2024
- ubuntu:jammy
- ubuntu:focal
- ubuntu:bionic
- ubuntu:xenial
cross_compile: [""]
variant: [""]
include:
# Debian 32-bit builds
- container: "debian:testing"
arch: i386
compiler: gcc -m32
cross_compile: i686-linux-gnu
variant: i386
pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig
- container: "debian:stable"
arch: i386
compiler: gcc -m32
cross_compile: i686-linux-gnu
variant: i386
pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig
- container: "debian:bookworm"
arch: i386
compiler: gcc -m32
cross_compile: i686-linux-gnu
variant: i386
pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig
- container: "debian:buster"
arch: i386
compiler: gcc -m32
cross_compile: i686-linux-gnu
variant: i386
pkg_config_path: /usr/lib/i386-linux-gnu/pkgconfig
# Debian cross compilation builds
- container: "debian:testing"
arch: armel
compiler: arm-linux-gnueabi-gcc
cross_compile: arm-linux-gnueabi
variant: cross-compile
pkg_config_path: /usr/lib/arm-linux-gnueabi/pkgconfig
- container: "debian:testing"
arch: arm64
compiler: aarch64-linux-gnu-gcc
cross_compile: aarch64-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/aarch64-linux-gnu/pkgconfig
- container: "debian:testing"
arch: ppc64el
compiler: powerpc64le-linux-gnu-gcc
cross_compile: powerpc64le-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/powerpc64le-linux-gnu/pkgconfig
- container: "debian:testing"
arch: s390x
compiler: s390x-linux-gnu-gcc
cross_compile: s390x-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/s390x-linux-gnu/pkgconfig
- container: "debian:stable"
arch: armel
compiler: arm-linux-gnueabi-gcc
cross_compile: arm-linux-gnueabi
variant: cross-compile
pkg_config_path: /usr/lib/arm-linux-gnueabi/pkgconfig
- container: "debian:stable"
arch: arm64
compiler: aarch64-linux-gnu-gcc
cross_compile: aarch64-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/aarch64-linux-gnu/pkgconfig
- container: "debian:stable"
arch: ppc64el
compiler: powerpc64le-linux-gnu-gcc
cross_compile: powerpc64le-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/powerpc64le-linux-gnu/pkgconfig
- container: "debian:stable"
arch: s390x
compiler: s390x-linux-gnu-gcc
cross_compile: s390x-linux-gnu
variant: cross-compile
pkg_config_path: /usr/lib/s390x-linux-gnu/pkgconfig
container:
image: ${{ matrix.container }}
env:
ARCH: ${{ matrix.arch }}
CC: ${{ matrix.compiler }}
CROSS_COMPILE: ${{ matrix.cross_compile }}
MODE: ${{ matrix.mode }}
VARIANT: ${{ matrix.variant }}
PKG_CONFIG_PATH: ${{ matrix.pkg_config_path }}
steps:
- name: Show OS
run: cat /etc/os-release
- name: Show env (matrix settings)
run: |
echo "ARCH: $ARCH"
echo "CC: $CC"
echo "CROSS_COMPILE: $CROSS_COMPILE"
echo "MODE: $MODE"
echo "VARIANT: $VARIANT"
- name: Git checkout
uses: actions/checkout@v3
- name: Install additional packages
run: |
INSTALL=${{ matrix.container }}
INSTALL="${INSTALL%%:*}"
INSTALL="${INSTALL%%/*}"
./ci/$INSTALL.sh
if [ "$VARIANT" ]; then ./ci/$INSTALL.$VARIANT.sh; fi
- name: Compiler version
run: $CC --version
- name: Display environment and Linux version
run: |
test -f /etc/issue && cat /etc/issue
echo "############################################"
lsb_release -a || true
echo "############################################"
cat /usr/include/linux/version.h
echo "############################################"
uname -a
echo "############################################"
cat /proc/cmdline
echo "############################################"
printenv
- name: Compile
run: make -j$(nproc)
- name: Install
run: make install