name: CMock Unit Tests on: [push, pull_request] jobs: run: runs-on: ubuntu-latest steps: - name: Checkout Parent Repository uses: actions/checkout@v2 with: ref: main repository: FreeRTOS/FreeRTOS submodules: 'recursive' fetch-depth: 1 - name: Clone This Repo uses: actions/checkout@v2 with: path: ./FreeRTOS/Source - name: Setup Python uses: actions/setup-python@master with: python-version: 3.8 - name: Install packages run: | sudo apt-get install lcov cflow ruby doxygen build-essential unifdef - name: Run Unit Tests with ENABLE_SANITIZER=1 run: | make -C FreeRTOS/Test/CMock clean make -C FreeRTOS/Test/CMock ENABLE_SANITIZER=1 run_col_formatted - name: Run Unit Tests for coverage run: | make -C FreeRTOS/Test/CMock clean make -C FreeRTOS/Test/CMock lcovhtml lcov --config-file FreeRTOS/Test/CMock/lcovrc --summary FreeRTOS/Test/CMock/build/cmock_test.info > FreeRTOS/Test/CMock/build/cmock_test_summary.txt - name: Upload coverage to Codecov uses: codecov/codecov-action@v3.1.0 with: files: ${{ github.workspace }}/FreeRTOS/Test/CMock/build/cmock_test.info root_dir: ${{ github.workspace }}/FreeRTOS/Source flags: unittests fail_ci_if_error: false verbose: false - name: Archive code coverage data uses: actions/upload-artifact@v2 with: name: coverage-data path: FreeRTOS/Test/CMock/build/cmock_test* - name: Archive code coverage html report uses: actions/upload-artifact@v2 with: name: coverage-report path: FreeRTOS/Test/CMock/build/coverage