diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..1c9a9091 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,67 @@ +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 + wget https://github.com/troglobit/libuev/releases/download/v2.3.2/libuev-2.3.2.tar.xz + wget https://github.com/troglobit/libite/releases/download/v2.3.1/libite-2.3.1.tar.gz + tar xf libuev-2.3.2.tar.xz + tar xf libite-2.3.1.tar.gz + (cd libuev-2.3.2 && ./configure --prefix=/tmp && make && make install-strip) + (cd libite-2.3.1 && ./configure --prefix=/tmp && make && make install-strip) + - uses: actions/checkout@v2 + - name: Static Finit + run: | + ./autogen.sh + ./configure --prefix= --enable-static + make V=1 + - name: Regular Finit + run: | + ./configure --prefix= --enable-x11-common-plugin --with-watchdog --with-keventd + make clean + make V=1 + - name: Install to ~/tmp and Inspect + run: | + DESTDIR=~/tmp make install-strip + tree ~/tmp + ldd ~/tmp/sbin/finit + size ~/tmp/sbin/finit + ldd ~/tmp/sbin/initctl + size ~/tmp/sbin/initctl + ldd ~/tmp/sbin/reboot + size ~/tmp/sbin/reboot + LD_LIBRARY_PATH=~/tmp/lib /tmp/finit/sbin/finit -h + LD_LIBRARY_PATH=~/tmp/lib /tmp/finit/sbin/initctl -h + - name: Run Unit Tests + run: | + LD_LIBRARY_PATH=~/tmp/lib make check || (cat test/test-suite.log; false) + - name: Upload Test Results + uses: actions/upload-artifact@v2 + with: + name: finit-test-${{ matrix.compiler }} + path: test/* diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1a877f15..00000000 --- a/.travis.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Travis CI integration -- https://travis-ci.org/troglobit/finit -# Defaults to GNU GCC and autotools: ./configure && make && make test -language: c - -# Use docker for quicker builds, it now allows https://docs.travis-ci.com/user/apt/ -sudo: false - -# Test build with both GCC and Clang (LLVM) -compiler: - - gcc - - clang - -# The secure: declaration is the encrypted COVERITY_SCAN_TOKEN, created -# via the "travis encrypt" command using the project repo's public key -env: - global: - - PKG_CONFIG_PATH=/tmp/lib/pkgconfig - - CFLAGS="-W -Wall -Wextra" - - secure: "eOiuHs02lG2Uv146K9dMqucGTWUJFEhpz1oAtwe+kPrRXsXWc20hYMO+DSpMgD05vSvNeQA6p7h7LdRFQ+/g/Obj27TsOE+RKkUvRAtdwzxnKVyii9C/nmML8cFw7rIA0VS8O9mAkVYeyDxNDupBp3e9DPCibhKPvqCvioTnyy4=" - -addons: - apt: - packages: - - tree - coverity_scan: - project: - name: "troglobit/finit" - description: "finit | Fast & Extensible init for Linux" - notification_email: troglobit@gmail.com - build_command_prepend: "./autogen.sh && ./configure --prefix= --disable-doc --disable-contrib --with-watchdog" - build_command: "make" - branch_pattern: dev - -install: - - wget https://github.com/troglobit/libuev/releases/download/v2.3.2/libuev-2.3.2.tar.xz - - wget https://github.com/troglobit/libite/releases/download/v2.3.1/libite-2.3.1.tar.gz - - tar xf libuev-2.3.2.tar.xz - - tar xf libite-2.3.1.tar.gz - - (cd libuev-2.3.2 && ./configure --prefix=/tmp && make && make install-strip) - - (cd libite-2.3.1 && ./configure --prefix=/tmp && make && make install-strip) - -# Custom build script for the time being, no "make test" yet -script: - - ./autogen.sh - - ./configure --prefix= --enable-static - - make clean - - make V=1 -j5 - - ./configure --prefix= --enable-x11-common-plugin --with-watchdog --with-keventd - - cat config.log - - make clean - - make V=1 -j5 - - make install-strip DESTDIR=/tmp/finit - - tree /tmp/finit - - ldd /tmp/finit/sbin/finit - - size /tmp/finit/sbin/finit - - size /tmp/finit/sbin/initctl - - size /tmp/finit/sbin/reboot - - LD_LIBRARY_PATH=/tmp/lib /tmp/finit/sbin/initctl -h - - unshare -V - - nsenter -V - - chroot --version - - 'LD_LIBRARY_PATH=/tmp/lib make distcheck || (cat finit-4.0-beta1/_build/sub/test/test-suite.log; exit 1)' diff --git a/README.md b/README.md index a376f256..6c7e727b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![License Badge][]][License] [![Travis Status]][Travis] [![Coverity Status]][Coverity Scan] +[![License Badge][]][License] [![GitHub Status]][GitHub] [![Coverity Status]][Coverity Scan] Finit: Fast Init * [Introduction](#introduction) @@ -571,34 +571,34 @@ This project is based on the [original finit][] by [Claudio Matsuoka][] which was reverse engineered from syscalls of the [EeePC fastinit][] — "gaps filled with frog DNA …" -Finit is developed and maintained by [Joachim Wiberg][] at [GitHub][]. +Finit is developed and maintained by [Joachim Wiberg][] at [GitHub][6]. Please file bug reports, clone it, or send pull requests for bug fixes and proposed extensions. -[1]: https://en.wikipedia.org/wiki/Process_supervision -[2]: http://cr.yp.to/daemontools.html -[3]: http://smarden.org/runit/ -[4]: http://en.wikipedia.org/wiki/Init -[5]: http://en.wikipedia.org/wiki/Runlevel +[1]: https://en.wikipedia.org/wiki/Process_supervision +[2]: https://cr.yp.to/daemontools.html +[3]: https://smarden.org/runit/ +[4]: https://en.wikipedia.org/wiki/Init +[5]: https://en.wikipedia.org/wiki/Runlevel +[6]: https://github.com/troglobit/finit [RFC862]: https://tools.ietf.org/html/rfc862 [RFC863]: https://tools.ietf.org/html/rfc863 [RFC864]: https://tools.ietf.org/html/rfc864 [RFC867]: https://tools.ietf.org/html/rfc867 [RFC868]: https://tools.ietf.org/html/rfc868 -[init]: http://en.wikipedia.org/wiki/Init -[upstart]: http://upstart.ubuntu.com/ -[systemd]: http://www.freedesktop.org/wiki/Software/systemd/ -[openrc]: http://www.gentoo.org/proj/en/base/openrc/ -[run-parts(8)]: http://manpages.debian.org/cgi-bin/man.cgi?query=run-parts +[init]: https://en.wikipedia.org/wiki/Init +[upstart]: https://upstart.ubuntu.com/ +[systemd]: https://www.freedesktop.org/wiki/Software/systemd/ +[openrc]: https://www.gentoo.org/proj/en/base/openrc/ +[run-parts(8)]: https://manpages.debian.org/cgi-bin/man.cgi?query=run-parts [original finit]: http://helllabs.org/finit/ [EeePC fastinit]: https://web.archive.org/web/20071208212450/http://wiki.eeeuser.com/boot_process:the_boot_process [Claudio Matsuoka]: https://github.com/cmatsuoka -[Joachim Wiberg]: http://troglobit.com -[GitHub]: https://github.com/troglobit/finit +[Joachim Wiberg]: https://troglobit.com [License]: https://en.wikipedia.org/wiki/MIT_License [License Badge]: https://img.shields.io/badge/License-MIT-teal.svg -[Travis]: https://travis-ci.org/troglobit/finit -[Travis Status]: https://travis-ci.org/troglobit/finit.svg?branch=master +[GitHub]: https://travis-ci.org/troglobit/finit +[GitHub Status]: https://travis-ci.org/troglobit/finit.svg?branch=master [Coverity Scan]: https://scan.coverity.com/projects/3545 [Coverity Status]: https://scan.coverity.com/projects/3545/badge.svg