File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Unit Tests
2+
3+ on :
4+ pull_request :
5+ # Only run workflow if a file in these paths are modified
6+ paths :
7+ - " .github/workflows/unit-tests.yml"
8+ - " test/**"
9+ - " api/**"
10+
11+ push :
12+ paths :
13+ - " .github/workflows/unit-tests.yml"
14+ - " test/**"
15+ - " api/**"
16+
17+ jobs :
18+ test :
19+ name : Run unit tests
20+ runs-on : ubuntu-latest
21+
22+ env :
23+ BUILD_PATH : ${{ github.workspace }}/test/build
24+
25+ steps :
26+ - name : Checkout repository
27+ uses : actions/checkout@v2
28+
29+ - name : Install valgrind
30+ run : sudo apt-get --assume-yes install valgrind
31+
32+ - name : Run unit tests
33+ run : |
34+ mkdir "$BUILD_PATH"
35+ cd "$BUILD_PATH"
36+ # Generate makefile
37+ cmake ..
38+ # Compile tests
39+ make
40+ # Run tests and check for memory leaks
41+ valgrind --leak-check=yes --error-exitcode=1 bin/test-ArduinoCore-API
42+
43+ - name : Install lcov
44+ run : sudo apt-get --assume-yes install lcov
45+
46+ - name : Report code coverage
47+ run : |
48+ cd "$BUILD_PATH"
49+ lcov --directory . --capture --output-file coverage.info
50+ # Remove external files from coverage data
51+ lcov --quiet --remove coverage.info '*/test/*' '/usr/*' --output-file coverage.info
52+ # Print coverage report in the workflow log
53+ lcov --list coverage.info
54+
55+ # See: https://github.com/codecov/codecov-action/blob/master/README.md
56+ - name : Upload coverage report to Codecov
57+ uses : codecov/codecov-action@v1
58+ with :
59+ file : ${{ env.BUILD_PATH }}/coverage.info
60+ fail_ci_if_error : true
You can’t perform that action at this time.
0 commit comments