name: Bob the Builder # Run on all branches, including all pull requests, except the 'dev' # branch since that's where we run Coverity Scan (limited tokens/day) on: push: branches: - '**' - '!dev' pull_request: branches: - '**' jobs: build: # Verify we can build on latest Ubuntu with both gcc and clang name: ${{ matrix.compiler }} runs-on: ubuntu-latest strategy: matrix: compiler: [gcc, clang] fail-fast: false env: MAKEFLAGS: -j3 CC: ${{ matrix.compiler }} steps: - name: Install dependencies run: | sudo apt-get -y update sudo apt-get -y install pkg-config tree jq wget https://github.com/troglobit/libuev/releases/download/v2.4.0/libuev-2.4.0.tar.xz wget https://github.com/troglobit/libite/releases/download/v2.5.2/libite-2.5.2.tar.gz tar xf libuev-2.4.0.tar.xz tar xf libite-2.5.2.tar.gz (cd libuev-2.4.0 && ./configure --prefix=/usr && make && sudo make install-strip) (cd libite-2.5.2 && ./configure --prefix=/usr && make && sudo make install-strip) sudo ldconfig - uses: actions/checkout@v3 - name: Static Finit run: | ./autogen.sh ./configure --prefix= --enable-static make V=1 - name: Regular Finit run: | ./configure --prefix=/usr --exec-prefix= --sysconfdir=/etc --localstatedir=/var --enable-x11-common-plugin --with-watchdog --with-keventd make clean make V=1 - name: Install to ~/tmp run: | DESTDIR=/tmp make install-strip tree /tmp - name: Check dependencies run: | ldd /tmp/sbin/finit size /tmp/sbin/finit ldd /tmp/sbin/initctl size /tmp/sbin/initctl ldd /tmp/sbin/reboot size /tmp/sbin/reboot - name: Verify starting and showing usage text run: | /tmp/sbin/finit -h /tmp/sbin/initctl -h - name: Run Unit Tests run: | make check || (cat test/test-suite.log; false) - 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 uses: actions/upload-artifact@v3 with: name: finit-test-${{ matrix.compiler }} path: test/*.log