diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d353ef0..f138533 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,13 +1,26 @@ -name: Continuous testing +name: testing on: push: pull_request: jobs: - tests: - name: Run test environment + quicktest: + name: Quick test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Run minimal test set + run: | + ./autogen.sh + ./configure + make test + + fulltest: + needs: quicktest + name: Full test runs-on: ${{ matrix.os }} strategy: fail-fast: true @@ -15,37 +28,55 @@ jobs: os: - ubuntu-latest - ubuntu-18.04 + - macos-latest steps: - uses: actions/checkout@v2 - - name: Install essential + - if: runner.os == 'Linux' + name: Install essential run: | sudo apt-get update sudo apt-get install build-essential + - if: runner.os == 'macOS' + name: Install packages + run: | + brew install automake gcovr + - name: generate a makefile and use it to install more packages run: | ./autogen.sh ./configure make build-dep + shell: bash - name: Run the real configure step run: | CFLAGS="-fprofile-arcs -ftest-coverage" LDFLAGS="--coverage" ./configure --with-zstd + shell: bash - name: Run embedded tests run: make test + shell: bash + + - if: ${{ always() }} + name: Upload tests output + uses: actions/upload-artifact@v2 + with: + name: tests-out-${{matrix.os}} + path: tests/*.out - - name: Generate a coverage report + - name: Generate coverage reports run: | make cover make gcov + shell: bash - name: Upload gcovr report artifact uses: actions/upload-artifact@v2 with: - name: code-coverage-report + name: coverage-${{matrix.os}} path: coverage - name: Upload data to codecov diff --git a/Makefile.in b/Makefile.in index af1d8a7..76999d4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -116,7 +116,11 @@ gcov: # This is the superset of all packages that might be needed. # It is a convinent target to use during development or from a CI/CD system build-dep: +ifeq ($(OS),Linux) sudo apt install build-essential autoconf libcap-dev libzstd-dev gcovr +else + echo Not attempting to handle build dependancies for non dpkg systems +endif clean: rm -rf $(N2N_OBJS) $(N2N_LIB) $(APPS) $(DOCS) coverage/ *.dSYM *~