| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- name: 'Unit tests'
- on:
- pull_request:
- env:
- TARGETS: f7
- DEFAULT_TARGET: f7
- FBT_TOOLCHAIN_PATH: /opt
- jobs:
- run_units_on_bench:
- runs-on: [self-hosted, FlipperZeroUnitTest]
- steps:
- - name: 'Wipe workspace'
- run: find ./ -mount -maxdepth 1 -exec rm -rf {} \;
- - name: Checkout code
- uses: actions/checkout@v3
- with:
- fetch-depth: 1
- ref: ${{ github.event.pull_request.head.sha }}
- - name: 'Get flipper from device manager (mock)'
- id: device
- run: |
- echo "flipper=/dev/ttyACM0" >> $GITHUB_OUTPUT
- - name: 'Flash unit tests firmware'
- id: flashing
- if: success()
- run: |
- ./fbt flash OPENOCD_ADAPTER_SERIAL=2A0906016415303030303032 FIRMWARE_APP_SET=unit_tests FORCE=1
- - name: 'Wait for flipper and format ext'
- id: format_ext
- if: steps.flashing.outcome == 'success'
- run: |
- source scripts/toolchain/fbtenv.sh
- python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}}
- python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} format_ext
- - name: 'Copy assets and unit data, reboot and wait for flipper'
- id: copy
- if: steps.format_ext.outcome == 'success'
- run: |
- source scripts/toolchain/fbtenv.sh
- python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} -f send assets/resources /ext
- python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} -f send assets/unit_tests /ext/unit_tests
- python3 scripts/power.py -p ${{steps.device.outputs.flipper}} reboot
- python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}}
- - name: 'Run units and validate results'
- id: run_units
- if: steps.copy.outcome == 'success'
- timeout-minutes: 2.5
- run: |
- source scripts/toolchain/fbtenv.sh
- python3 scripts/testing/units.py ${{steps.device.outputs.flipper}}
- - name: 'Check GDB output'
- if: failure()
- run: |
- ./fbt gdb_trace_all OPENOCD_ADAPTER_SERIAL=2A0906016415303030303032 FIRMWARE_APP_SET=unit_tests FORCE=1
|