CI: Add build matrix with multiple Linux distributions
set SETUPTOOLS_SCM_PRETEND_VERSION="0" variable because GitHub Actions does not copy the .git directory into the container. Without that, the build fails with the following error LookupError: setuptools-scm was unable to detect version for /__w/dtc/dtc. Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>main
parent
3b02a94b48
commit
e8364666d5
|
@ -12,22 +12,26 @@ jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ "alpine", "archlinux", "fedora", "ubuntu" ]
|
||||||
|
|
||||||
|
container:
|
||||||
|
image: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run:
|
run: |
|
||||||
sudo apt install
|
./scripts/install-deps.sh
|
||||||
flex
|
|
||||||
libyaml-dev
|
|
||||||
pkg-config
|
|
||||||
python3-dev
|
|
||||||
swig
|
|
||||||
valgrind
|
|
||||||
bison
|
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: make
|
run: |
|
||||||
|
SETUPTOOLS_SCM_PRETEND_VERSION="0" make
|
||||||
|
|
||||||
- name: Run check
|
- name: Run check
|
||||||
run: make check
|
run: |
|
||||||
|
SETUPTOOLS_SCM_PRETEND_VERSION="0" make check
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
if [ -f /etc/os-release ]
|
||||||
|
then
|
||||||
|
. /etc/os-release
|
||||||
|
else
|
||||||
|
echo "ERROR: OS name is not provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NAME" = "Arch Linux" ]
|
||||||
|
then
|
||||||
|
pacman -Syu --needed --noconfirm bison diffutils flex gcc git libyaml \
|
||||||
|
make pkgconf python python-setuptools-scm swig valgrind which
|
||||||
|
elif [ "$NAME" = "Alpine Linux" ]
|
||||||
|
then
|
||||||
|
apk add build-base bison coreutils flex git yaml yaml-dev python3-dev \
|
||||||
|
py3-setuptools_scm swig valgrind
|
||||||
|
elif [ "$NAME" = "Fedora Linux" ]
|
||||||
|
then
|
||||||
|
dnf install -y bison diffutils flex gcc git libyaml libyaml-devel \
|
||||||
|
make python3-devel python3-setuptools swig valgrind which
|
||||||
|
elif [ "$NAME" = "Ubuntu" ]
|
||||||
|
then
|
||||||
|
apt update
|
||||||
|
apt install -yq build-essential bison flex git libyaml-dev pkg-config \
|
||||||
|
python3-dev python3-setuptools python3-setuptools-scm swig valgrind
|
||||||
|
else
|
||||||
|
echo "ERROR: OS name is not provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in New Issue