mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 21:42:40 +07:00
The workflows install libuev and libite from source and everything
else from apt, but never libconfuse, so every build job on this
branch dies in configure:
checking for libconfuse >= 3.3... no
Ubuntu ships libconfuse 3.3 with the static library included, which
covers both the static and regular builds. Staying on 3.3 in CI is
deliberate: it exercises the fallback paths marked
"XXX: Workaround for libConfuse <3.4" that a from-source 3.4 would
leave untested.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
68 lines
2.2 KiB
YAML
68 lines
2.2 KiB
YAML
name: Weekly Distcheck
|
|
|
|
# Verify that `make distcheck` works as intended: all tests pass, and
|
|
# any new files are distributed in the tarballs
|
|
on:
|
|
schedule:
|
|
- cron: '0 0 * * 0'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
schedule:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
run: ${{ steps.schedule.outputs.run }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check for any commits since last week
|
|
id: schedule
|
|
run: |
|
|
commits="$(git log --format=%H --since='1 week ago')"
|
|
if [ -z "$commits" ]; then
|
|
echo "run=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "run=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
distcheck:
|
|
needs: schedule
|
|
if: ${{ needs.schedule.outputs.run == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get -y update
|
|
sudo apt-get -y install pkg-config jq libcap-dev libconfuse-dev
|
|
wget https://github.com/troglobit/libuev/releases/download/v2.4.1/libuev-2.4.1.tar.xz
|
|
wget https://github.com/troglobit/libite/releases/download/v2.6.2/libite-2.6.2.tar.gz
|
|
tar xf libuev-2.4.1.tar.xz
|
|
tar xf libite-2.6.2.tar.gz
|
|
(cd libuev-2.4.1 && ./configure && make -j9 && sudo make install-strip)
|
|
(cd libite-2.6.2 && ./configure && make -j9 && sudo make install-strip)
|
|
sudo ldconfig
|
|
- uses: actions/checkout@v4
|
|
- name: Base run
|
|
run: |
|
|
./autogen.sh
|
|
./configure --prefix=/usr --exec-prefix= --sysconfdir=/etc --localstatedir=/var
|
|
make -j9 V=1
|
|
- name: Install to /tmp
|
|
run: |
|
|
DESTDIR=/tmp make install-strip
|
|
- name: Enable unprivileged userns (unshare)
|
|
run: |
|
|
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0
|
|
- name: Check dist tarball
|
|
run: |
|
|
ver=$(/tmp/sbin/initctl -V | awk '/Finit.*/ {print $2;}')
|
|
dir=finit-$ver/_build/sub
|
|
make -j1 distcheck || (cat $dir/test/test-suite.log; false)
|
|
- name: Upload Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: finit-weekly-test-logs
|
|
path: finit-*/_build/sub/test/*.log
|