speeeedy ci #13695
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: tests | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref != 'refs/heads/master' && github.ref || github.run_id }}-${{ github.event_name }} | |
| cancel-in-progress: true | |
| env: | |
| RUN: source .venv/bin/activate && /bin/bash -c | |
| jobs: | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: ./setup.sh | |
| - name: Test python package installer | |
| run: ${{ env.RUN }} "pip install --break-system-packages .[dev]" | |
| - name: Build panda images and bootstub | |
| run: ${{ env.RUN }} "scons -j4" | |
| - name: Build panda with SPI support | |
| run: ${{ env.RUN }} "ENABLE_SPI=1 scons -j4" | |
| - name: Build with UBSan | |
| run: ${{ env.RUN }} "scons -j4 --ubsan" | |
| - name: Build jungle firmware with FINAL_PROVISIONING support | |
| run: ${{ env.RUN }} "FINAL_PROVISIONING=1 scons -j4 board/jungle" | |
| - name: Build panda in release mode | |
| run: ${{ env.RUN }} "CERT=certs/debug RELEASE=1 scons -j4" | |
| unit_tests: | |
| name: unit tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: ./setup.sh | |
| - name: Build panda | |
| run: $RUN "scons -j4" | |
| - name: Test communication protocols | |
| run: $RUN "cd tests/usbprotocol && ./test.sh" | |
| misra_linter: | |
| name: MISRA C:2012 Linter | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache cppcheck | |
| id: cppcheck-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: tests/misra/cppcheck | |
| key: cppcheck-${{ hashFiles('tests/misra/*') }} | |
| - run: ./setup.sh | |
| - name: Build FW | |
| run: ${{ env.RUN }} "scons -j$(nproc)" | |
| - name: Run MISRA C:2012 analysis | |
| timeout-minutes: 4 | |
| run: ${{ env.RUN }} "cd tests/misra && ./test_misra.sh" | |
| misra_mutation: | |
| name: MISRA C:2012 Mutation | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache cppcheck | |
| id: cppcheck-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: tests/misra/cppcheck | |
| key: cppcheck-${{ hashFiles('tests/misra/*') }} | |
| - run: ./setup.sh | |
| - name: Build FW | |
| run: ${{ env.RUN }} "scons -j$(nproc)" | |
| - name: MISRA mutation tests | |
| timeout-minutes: 5 | |
| run: ${{ env.RUN }} "cd tests/misra && pytest -n8 test_mutation.py" | |
| static_analysis: | |
| name: static analysis | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: ./setup.sh | |
| - name: Run static analysis | |
| timeout-minutes: 3 | |
| run: ${{ env.RUN }} "pre-commit run --all" |