diff --git a/.github/workflows/GNU.yml b/.github/workflows/GNU.yml new file mode 100644 index 000000000..1a635ea15 --- /dev/null +++ b/.github/workflows/GNU.yml @@ -0,0 +1,52 @@ +name: GNU + +on: [push, pull_request] + +jobs: + gnu: + name: Run GNU tests + runs-on: ubuntu-latest + steps: + # Checks out a copy of your repository on the ubuntu-latest machine + - name: Checkout code uutil + uses: actions/checkout@v2 + with: + path: 'uutils' + - name: Chechout GNU coreutils + uses: actions/checkout@v2 + with: + repository: 'coreutils/coreutils' + path: 'gnu' + - name: Chechout GNU corelib + uses: actions/checkout@v2 + with: + repository: 'coreutils/gnulib' + path: 'gnulib' + fetch-depth: 0 # gnu gets upset if gnulib is a shallow checkout + - name: Install `rust` toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + default: true + profile: minimal # minimal component installation (ie, no documentation) + components: rustfmt + - name: Run gnu tests + shell: bash + run: | + pushd uutils + cargo build --release + BUILDDIR="$PWD/target/release/" + popd + GNULIB_SRCDIR="$PWD/gnulib" + pushd gnu/ + sudo apt-get update + sudo apt-get install autoconf autopoint bison texinfo gperf gcc gdb python-pyinotify + ./bootstrap --gnulib-srcdir="$GNULIB_SRCDIR" + ./configure --quiet --disable-gcc-warnings + # Change the PATH in the Makefile to test the uutils coreutils instead of the GNU coreutils + sed -i "s/^[[:blank:]]*PATH=.*/ PATH='${BUILDDIR//\//\\/}\$(PATH_SEPARATOR)'\"\$\$PATH\" \\\/" Makefile + sed -i 's| tr | /usr/bin/tr |' tests/init.sh + make + test -f $BUILDDIR/getlimits || cp src/getlimits $BUILDDIR + ulimit -t 60 + make -j "$(nproc)" check SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no || :