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: jobs: schedule: runs-on: ubuntu-latest outputs: run: ${{ steps.check.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 [ -n "$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 libuev-dev libite-dev - 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)