summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml28
-rwxr-xr-xscripts/install-deps.sh32
2 files changed, 48 insertions, 12 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6daaa8d..442d98b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -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
diff --git a/scripts/install-deps.sh b/scripts/install-deps.sh
new file mode 100755
index 0000000..4076310
--- /dev/null
+++ b/scripts/install-deps.sh
@@ -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