name: testing on: push: pull_request: jobs: 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 matrix: os: - ubuntu-latest - ubuntu-18.04 - macos-latest - windows-latest steps: - uses: actions/checkout@v2 - 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 - if: runner.os == 'Windows' # This is a pretty big hammer, but gets the windows compile moving name: Hack up a fake autoconf run: | echo true >autogen.sh cp scripts/hack_fakeautoconf configure shell: bash - 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 coverage data run: | make gcov shell: bash - if: runner.os != 'Windows' name: Generate gcovr report run: | make cover shell: bash - if: runner.os != 'Windows' name: Upload gcovr report artifact uses: actions/upload-artifact@v2 with: name: coverage-${{matrix.os}} path: coverage - name: Upload data to codecov uses: codecov/codecov-action@v2