mirror of
https://github.com/ntop/n2n.git
synced 2024-09-20 00:51:10 +02:00
dec1771d5f
* Just for a laugh, lets naively throw the same build at non linux OS * Only run apt commands on linux (yes, this is not actually right, but it is close enough for github actions at the moment) * Start installing required macOS packages * Only run apt commands on linux #2 * Ensure that we use a Bourne shell, even on Windows * Until it is clear how to install autotools on windows in github runners, avoid fighting that bear * Only try to run gcovr on ubuntu-latest * Install the right macos dep * Install gcovr on macos and upload all coverage report artifacts * Upload a generated tests output artifact, even if the tests failed * Prepend a quick smoke test to the full matrix and coverage builds * Use short names for jobs
84 lines
1.7 KiB
YAML
84 lines
1.7 KiB
YAML
|
|
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
|
|
|
|
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
|
|
|
|
- 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 reports
|
|
run: |
|
|
make cover
|
|
make gcov
|
|
shell: bash
|
|
|
|
- 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
|