2024-09-01 16:33:41 +00:00
|
|
|
name: End to end tests
|
2024-08-19 23:39:26 +00:00
|
|
|
|
|
|
|
on:
|
|
|
|
schedule:
|
|
|
|
- cron: "0 0 * * *" # Run every day at midnight
|
|
|
|
workflow_dispatch: {}
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
test-simulator:
|
2024-09-24 17:54:04 +00:00
|
|
|
runs-on: ubuntu-latest
|
2024-08-19 23:39:26 +00:00
|
|
|
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: |
|
2024-08-20 00:19:16 +00:00
|
|
|
.pio/build/native/program & sleep 10 # 5 seconds was not enough
|
2024-08-19 23:39:26 +00:00
|
|
|
echo "Simulator started, launching python test..."
|
|
|
|
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'
|
2024-08-20 11:49:54 +00:00
|
|
|
|
|
|
|
- name: PlatformIO Tests
|
2024-08-20 12:17:39 +00:00
|
|
|
run: platformio test -e native --junit-output-path testreport.xml
|
2024-08-20 11:49:54 +00:00
|
|
|
|
|
|
|
- name: Test Report
|
|
|
|
uses: dorny/test-reporter@v1.9.1
|
|
|
|
if: success() || failure() # run this step even if previous step failed
|
|
|
|
with:
|
|
|
|
name: PlatformIO Tests
|
2024-08-20 12:17:39 +00:00
|
|
|
path: testreport.xml
|
2024-08-20 11:49:54 +00:00
|
|
|
reporter: java-junit
|
2024-09-01 16:33:41 +00:00
|
|
|
|
|
|
|
hardware-tests:
|
2024-09-24 17:54:04 +00:00
|
|
|
runs-on: test-runner
|
2024-09-01 16:33:41 +00:00
|
|
|
steps:
|
|
|
|
- name: Checkout code
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
|
2024-09-24 18:16:24 +00:00
|
|
|
# - uses: actions/setup-python@v5
|
|
|
|
# with:
|
|
|
|
# python-version: '3.10'
|
2024-09-25 21:18:45 +00:00
|
|
|
|
2024-09-24 18:33:51 +00:00
|
|
|
# pipx install "setuptools<72"
|
2024-09-01 16:33:41 +00:00
|
|
|
- name: Upgrade python tools
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2024-09-24 18:45:02 +00:00
|
|
|
pipx install adafruit-nrfutil
|
2024-09-24 18:30:26 +00:00
|
|
|
pipx install poetry
|
2024-09-24 18:37:40 +00:00
|
|
|
pipx install meshtastic --pip-args=--pre
|
2024-09-01 16:33:41 +00:00
|
|
|
|
2024-09-24 18:45:02 +00:00
|
|
|
- name: Install PlatformIO from script
|
|
|
|
shell: bash
|
2024-09-25 21:18:45 +00:00
|
|
|
run: |
|
2024-09-24 18:45:02 +00:00
|
|
|
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
|
|
|
|
python3 get-platformio.py
|
2024-09-25 21:18:45 +00:00
|
|
|
|
2024-09-01 16:33:41 +00:00
|
|
|
- name: Upgrade platformio
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2024-09-24 19:32:20 +00:00
|
|
|
export PATH=$PATH:$HOME/.local/bin
|
2024-09-01 16:33:41 +00:00
|
|
|
pio upgrade
|
|
|
|
|
2024-09-24 18:57:53 +00:00
|
|
|
- name: Setup Node
|
|
|
|
uses: actions/setup-node@v4
|
|
|
|
with:
|
|
|
|
node-version: 18
|
2024-09-25 21:18:45 +00:00
|
|
|
|
2024-09-01 16:33:41 +00:00
|
|
|
- name: Setup pnpm
|
2024-09-21 11:13:09 +00:00
|
|
|
uses: pnpm/action-setup@v4
|
2024-09-01 16:33:41 +00:00
|
|
|
with:
|
|
|
|
version: latest
|
|
|
|
|
2024-09-24 19:02:12 +00:00
|
|
|
- name: Install dependencies, setup devices and run
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2024-09-24 19:18:19 +00:00
|
|
|
git submodule update --init --recursive
|
2024-09-24 19:05:12 +00:00
|
|
|
cd meshtestic/
|
2024-09-24 19:02:12 +00:00
|
|
|
pnpm install
|
|
|
|
pnpm run setup
|
|
|
|
pnpm run test
|