# # 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