Merge pull request #1366 from bdring/dymk/refactor-run-fixtures #844
This file contains 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: FluidNC Continuous Integration | |
on: [push, pull_request] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
pio_env: | |
- noradio | |
- wifi | |
- bt | |
# - wifibt | |
# - debug | |
pio_env_variant: | |
- "" | |
# - "_s2" | |
# - "_s3" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
cache: "pip" | |
- name: Install PlatformIO | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Cache PlatformIO | |
uses: actions/cache@v3 | |
with: | |
path: ~/.platformio | |
key: platformio-${{ runner.os }} | |
- name: Build target ${{ matrix.pio_env }}${{ matrix.pio_env_variant }} | |
run: pio run -e ${{ matrix.pio_env }}${{ matrix.pio_env_variant }} | |
- if: matrix.os == 'ubuntu-latest' | |
name: Upload ${{ matrix.pio_env }}${{ matrix.pio_env_variant }} firmware.bin | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.pio_env }}${{ matrix.pio_env_variant }}_firmware | |
path: | | |
.pio/build/${{ matrix.pio_env }}${{ matrix.pio_env_variant }}/firmware.* | |
.pio/build/${{ matrix.pio_env }}${{ matrix.pio_env_variant }}/partitions.bin | |
tests: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
pio_env: tests | |
- os: macos-latest | |
pio_env: tests | |
- os: windows-latest | |
pio_env: tests_nosan | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
# Windows has issues running gtest code with the included gcc, so install | |
# MSYS2 and use that instead (remember to add it to the path) | |
- if: matrix.os == 'windows-latest' | |
name: Install MSYS2 (Windows) | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
location: D:\ | |
install: mingw-w64-ucrt-x86_64-gcc | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
cache: "pip" | |
- name: Install PlatformIO | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Cache PlatformIO | |
uses: actions/cache@v3 | |
with: | |
path: ~/.platformio | |
key: platformio-${{ runner.os }} | |
# Separate run task for Windows, since it has issues with the included gcc | |
- if: matrix.os == 'windows-latest' | |
name: Run tests (Windows) | |
run: | | |
$env:PATH = "D:\msys64\mingw64\bin;D:\msys64\usr\bin;D:\msys64\ucrt64\bin;" + $env:PATH | |
pio test -e ${{ matrix.pio_env }} -vv | |
- if: matrix.os != 'windows-latest' | |
name: Run tests | |
run: pio test -e ${{ matrix.pio_env }} -vv |