diff --git a/.github/workflows/pio.yml b/.github/workflows/pio.yml new file mode 100644 index 0000000..cdf3c89 --- /dev/null +++ b/.github/workflows/pio.yml @@ -0,0 +1,50 @@ +name: PlatformIO CI + +on: + push: + pull_request: + +jobs: + pio-build: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Cache pip + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Cache PlatformIO + uses: actions/cache@v2 + with: + path: ~/.platformio + key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} + + - name: Set up Python + uses: actions/setup-python@v2 + + - name: Install PlatformIO + id: pio_install + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + + - name: Build Firmware (view) + # Run regardless of other build step failures, as long as setup steps completed + if: always() && steps.pio_install.outcome == 'success' + run: | + pio run -d ./firmware \ + -e view \ + + - name: Build Firmware (handheld_tdisplay) + # Run regardless of other build step failures, as long as setup steps completed + if: always() && steps.pio_install.outcome == 'success' + run: | + pio run -d ./firmware \ + -e handheld_tdisplay \ diff --git a/README.md b/README.md index 08238de..429f4d6 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,9 @@ SmartKnob is an open-source input device with software-configurable endstops and A brushless gimbal motor is paired with a magnetic encoder to provide closed-loop torque feedback control, making it possible to dynamically create and adjust the feel of detents and endstops. +[![Build Status](https://github.com/scottbez1/smartknob/actions/workflows/electronics.yml/badge.svg?branch=master)](https://github.com/scottbez1/smartknob/actions/workflows/electronics.yml) +[![Build Status](https://github.com/scottbez1/smartknob/actions/workflows/pio.yml/badge.svg?branch=master)](https://github.com/scottbez1/smartknob/actions/workflows/pio.yml) + # Designs ## SmartKnob View