mirror of
https://github.com/ntop/n2n.git
synced 2024-09-19 16:41:11 +02:00
added test platform MacOS (#828)
* 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
This commit is contained in:
parent
4137441b5e
commit
dec1771d5f
43
.github/workflows/tests.yml
vendored
43
.github/workflows/tests.yml
vendored
|
@ -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
|
||||
|
||||
- name: Generate a coverage report
|
||||
- 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: code-coverage-report
|
||||
name: coverage-${{matrix.os}}
|
||||
path: coverage
|
||||
|
||||
- name: Upload data to codecov
|
||||
|
|
|
@ -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 *~
|
||||
|
|
Loading…
Reference in New Issue
Block a user