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 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