Browse Source

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
Biswapriyo Nath 2 years ago committed by David Gibson
parent
commit
e8364666d5
  1. 28
      .github/workflows/build.yml
  2. 32
      scripts/install-deps.sh

28
.github/workflows/build.yml

@ -12,22 +12,26 @@ jobs: @@ -12,22 +12,26 @@ jobs:
build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
os: [ "alpine", "archlinux", "fedora", "ubuntu" ]

container:
image: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- name: Checkout
uses: actions/checkout@v3

- name: Install Dependencies
run:
sudo apt install
flex
libyaml-dev
pkg-config
python3-dev
swig
valgrind
bison
run: |
./scripts/install-deps.sh

- name: Build
run: make
run: |
SETUPTOOLS_SCM_PRETEND_VERSION="0" make

- name: Run check
run: make check
run: |
SETUPTOOLS_SCM_PRETEND_VERSION="0" make check

32
scripts/install-deps.sh

@ -0,0 +1,32 @@ @@ -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…
Cancel
Save