End to end tests #1
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: End to end tests | |
on: | |
schedule: | |
- cron: "0 0 * * *" # Run every day at midnight | |
workflow_dispatch: {} | |
jobs: | |
test-simulator: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install libbluetooth | |
shell: bash | |
run: | | |
sudo apt-get update --fix-missing | |
sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Upgrade python tools | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
pip install -U platformio adafruit-nrfutil | |
pip install -U meshtastic --pre | |
- name: Upgrade platformio | |
shell: bash | |
run: | | |
pio upgrade | |
- name: Build Native | |
run: bin/build-native.sh | |
# We now run integration test before other build steps (to quickly see runtime failures) | |
- name: Build for native | |
run: platformio run -e native | |
- name: Integration test | |
run: | | |
.pio/build/native/program & sleep 10 # 5 seconds was not enough | |
echo "Simulator started, launching python test..." | |
python3 -c 'from meshtastic.test import testSimulator; testSimulator()' | |
- name: PlatformIO Tests | |
run: platformio test -e native --junit-output-path testreport.xml | |
- name: Test Report | |
uses: dorny/[email protected] | |
if: success() || failure() # run this step even if previous step failed | |
with: | |
name: PlatformIO Tests | |
path: testreport.xml | |
reporter: java-junit | |
hardware-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Upgrade python tools | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
pip install -U --no-build-isolation --no-cache-dir "setuptools<72" | |
pip install -U platformio adafruit-nrfutil --no-build-isolation | |
pip install -U poetry --no-build-isolation | |
pip install -U meshtastic --pre --no-build-isolation | |
- name: Upgrade platformio | |
shell: bash | |
run: | | |
pio upgrade | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: latest | |
- name: Install Dependencies | |
run: pnpm install | |
- name: Setup devices | |
run: pnpm run setup | |
- name: Execute end to end tests on connected hardware | |
run: pnpm run test |