name: Continuous Integration on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] pull_request: branches: [ master ] jobs: setup: runs-on: ubuntu-latest steps: echo "No action setup currently needed, skipping..." build: needs: setup runs-on: ubuntu-latest - name: Checkout code uses: actions/checkout@v2 with: submodules: 'recursive' - name: Setup Python uses: actions/setup-python@v2 with: python-version: 3.x - name: Cache python libs uses: actions/cache@v1 id: cache-pip # needed in if test with: path: ~/.cache/pip key: ${{ runner.os }}-pip - name: Upgrade python tools # We actually want to run this every time # if: steps.cache-pip.outputs.cache-hit != 'true' run: | python -m pip install --upgrade pip pip install -U platformio meshtastic adafruit-nrfutil - name: Cache platformio uses: actions/cache@v1 id: cache-platformio # needed in if test with: path: ~/.platformio key: ${{ runner.os }}-platformio - name: Upgrade platformio run: | pio upgrade - name: Build for tbeam run: platformio run -e tbeam - name: Build for heltec run: platformio run -e heltec - name: Build for wisblock RAK4631 run: platformio run -e rak4631 - name: Build for native run: platformio run -e native - name: Integration test run: | .pio/build/native/program & sleep 5 echo "Simulator started, launching python test..." python3 -c 'from meshtastic.test import testSimulator; testSimulator()'