mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-26 21:36:21 +00:00
d10861e478
- Add a framework to build and execute unit tests for Marlin. - Enable unit test execution as part of PR checks. --------- Co-authored-by: Costas Basdekis <costas.basdekis@gmail.com> Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
74 lines
1.8 KiB
YAML
74 lines
1.8 KiB
YAML
#
|
|
# ci-unit-tests.yml
|
|
# Build and execute unit tests to catch functional issues in code
|
|
#
|
|
|
|
name: CI - Unit Tests
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- bugfix-2.1.x
|
|
# Cannot be enabled on 2.1.x until it contains the unit test framework
|
|
#- 2.1.x
|
|
paths-ignore:
|
|
- config/**
|
|
- data/**
|
|
- docs/**
|
|
- '**/*.md'
|
|
push:
|
|
branches:
|
|
- bugfix-2.1.x
|
|
# Cannot be enabled on 2.1.x until it contains the unit test framework
|
|
#- 2.1.x
|
|
paths-ignore:
|
|
- config/**
|
|
- data/**
|
|
- docs/**
|
|
- '**/*.md'
|
|
|
|
jobs:
|
|
# This runs all unit tests as a single job. While it should be possible to break this up into
|
|
# multiple jobs, they currently run quickly and finish long before the compilation tests.
|
|
run_unit_tests:
|
|
name: Unit Test
|
|
# These tests will only be able to run on the bugfix-2.1.x branch, until the next release
|
|
# pulls them into additional branches.
|
|
if: github.repository == 'MarlinFirmware/Marlin'
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out the PR
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Cache pip
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
|
|
- name: Cache PlatformIO
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.platformio
|
|
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
|
|
|
|
- name: Select Python 3.9
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.9'
|
|
architecture: 'x64'
|
|
|
|
- name: Install PlatformIO
|
|
run: |
|
|
pip install -U platformio
|
|
pio upgrade --dev
|
|
pio pkg update --global
|
|
|
|
- name: Run All Unit Tests
|
|
run: |
|
|
make unit-test-all-local
|