End to end tests #123
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: test-runner | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# - uses: actions/setup-python@v5 | |
# with: | |
# python-version: '3.10' | |
# pipx install "setuptools<72" | |
- name: Upgrade python tools | |
shell: bash | |
run: | | |
pipx install adafruit-nrfutil | |
pipx install poetry | |
pipx install meshtastic --pip-args=--pre | |
- name: Install PlatformIO from script | |
shell: bash | |
run: | | |
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py | |
python3 get-platformio.py | |
- name: Upgrade platformio | |
shell: bash | |
run: | | |
export PATH=$PATH:$HOME/.local/bin | |
pio upgrade | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: latest | |
- name: Install dependencies, setup devices and run | |
shell: bash | |
run: | | |
git submodule update --init --recursive | |
cd meshtestic/ | |
pnpm install | |
pnpm run setup | |
pnpm run test |