summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2022-03-28 12:44:22 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2022-04-14 13:10:36 +0200
commit884a43eb2ea9eaab44a6fe06e60244e664b49a7f (patch)
tree0a01c47123f500c0cfcf57f6828285bdee8fb0bf
parent720d3cb73813d9b85e4439bc549e11b20b34a19d (diff)
downloadpython-systemd-884a43eb2ea9eaab44a6fe06e60244e664b49a7f.tar.gz
ci: introduce a simple install test
-rw-r--r--.github/workflows/install.yml77
1 files changed, 77 insertions, 0 deletions
diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml
new file mode 100644
index 0000000..0ae5260
--- /dev/null
+++ b/.github/workflows/install.yml
@@ -0,0 +1,77 @@
+---
+# vi: ts=2 sw=2 et:
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+name: Install test
+on: [pull_request]
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ concurrency:
+ group: ${{ github.workflow }}-${{ matrix.container }}-${{ github.ref }}
+ cancel-in-progress: true
+ strategy:
+ fail-fast: false
+ matrix:
+ container: [
+ "archlinux:latest",
+ "debian:testing",
+ "quay.io/centos/centos:stream8",
+ "quay.io/fedora/fedora:rawhide",
+ "ubuntu:focal",
+ ]
+ container:
+ image: ${{ matrix.container }}
+ name: ${{ matrix.container }}
+ steps:
+ - name: Repository checkout
+ uses: actions/checkout@v2
+
+ - name: Install dependencies
+ shell: bash
+ run: |
+ DIST_ID="$(sed -nr 's/^ID="?(\w+)"?/\1/p' /etc/os-release)"
+ echo "Distribution ID: $DIST_ID"
+
+ DEPS_COMMON=(
+ gcc
+ git
+ pkg-config
+ python3
+ systemd
+ )
+
+ case "$DIST_ID" in
+ arch)
+ pacman --noconfirm -Sy "${DEPS_COMMON[@]}" systemd-libs
+ python3 -m ensurepip
+ ;;
+ centos|fedora)
+ dnf -y install "${DEPS_COMMON[@]}" systemd-devel python3-devel python3-pip
+ ;;
+ ubuntu|debian)
+ apt -y update
+ DEBIAN_FRONTEND=noninteractive apt -y install "${DEPS_COMMON[@]}" libsystemd-dev python3-dev python3-pip
+ ;;
+ *)
+ echo >&2 "Invalid distribution ID: $DISTRO_ID"
+ exit 1
+ esac
+
+ python3 -m pip install pytest sphinx
+
+ - name: Build & install
+ shell: bash
+ run: |
+ set -x
+ python3 -m pip install -I -v .
+ # Avoid importing the systemd module from the git repository
+ cd /
+ python3 -c 'from systemd import journal; print(journal.__version__)'
+ # Initialize /etc/machine-id if it's empty to make the tests happy
+ [[ ! -s /etc/machine-id ]] && systemd-id128 new >/etc/machine-id
+ pytest -v --pyargs systemd