Crazy Stab Sanity 🗡️ #196
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: Crazy Stab Sanity 🗡️ | |
# Controls when the action will run. | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 6 * * *' | |
jobs: | |
#TODO add flashing of crazyflies | |
setup_mac: | |
runs-on: [self-hosted, macOS] | |
steps: | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
- name: Download latest firmware files | |
with: | |
repo: bitcraze/crazyflie-release | |
workflow: nightly.yml | |
uses: dawidd6/action-download-artifact@v4 | |
sanity_testsuite_on_mac: | |
needs: [setup_mac] | |
runs-on: [self-hosted, macOS] | |
strategy: | |
matrix: | |
python_version: ["3.10", "3.11", "3.12", "3.13"] | |
fail-fast: false | |
env: | |
TEST_FILE: Mac__sanity_test_job-${{github.run_number}}-${{ matrix.python_version }} | |
CRAZY_SITE: crazylab-mac | |
PYTHON_VERSION: ${{ matrix.python_version }} | |
timeout-minutes: 120 | |
steps: | |
- name: Setup python environment | |
run: | | |
$(brew --prefix)/bin/python${PYTHON_VERSION} -m venv venv | |
source venv/bin/activate | |
- name: Install pytest | |
run: venv/bin/pip install pytest | |
- name: Install Crazyflie python library | |
run: venv/bin/pip install git+https://github.com/bitcraze/crazyflie-lib-python.git@master | |
- name: Install requirements | |
run: | | |
venv/bin/pip install -r requirements.txt | |
- name: Upgrade devices to latest firmware | |
run: venv/bin/python management/program.py --file cf2-nightly/firmware-cf2-nightly.zip --retries 3 | |
- name: Run test suite | |
run: venv/bin/python -m pytest --verbose --html=${{env.TEST_FILE}}.html --junit-xml ${{env.TEST_FILE}}.xml -m sanity tests/QA | |
- name: Upload test file | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{env.TEST_FILE}}_results | |
if-no-files-found: warn | |
path: | | |
${{env.TEST_FILE}}.html | |
${{env.TEST_FILE}}.xml | |
assets/style.css | |
- name: Pretty print test results | |
if: ${{ !cancelled() }} | |
uses: pmeier/pytest-results-action@main | |
with: | |
path: ${{env.TEST_FILE}}.xml | |
summary: true | |
title: Test results | |
sanity_testsuite_on_linux: | |
if: ${{ !cancelled() }} | |
needs: [sanity_testsuite_on_mac] | |
runs-on: [self-hosted, linux] | |
strategy: | |
matrix: | |
python_version: ["3.10", "3.11","3.12", "3.13"] | |
fail-fast: false | |
env: | |
TEST_FILE: Linux_sanity_test_job-${{github.run_number}}-${{ matrix.python_version }} | |
CRAZY_SITE: crazylab-malmö | |
CRAZY_DEVICE: cf21_stock | |
PYTHON_VERSION: ${{ matrix.python_version }} | |
timeout-minutes: 120 | |
container: | |
image: python:${{ matrix.python_version }}-bookworm | |
options: --privileged | |
steps: | |
- name: Upgrade pip | |
run: | | |
pip3 install --upgrade pip | |
- name: Install libusb | |
run: | | |
apt update | |
apt install -y libusb-1.0-0 uhubctl | |
- name: Install pytest | |
run: pip3 install pytest | |
- name: Install Crazyflie python library | |
run: pip3 install git+https://github.com/bitcraze/crazyflie-lib-python.git@master | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
- name: Install requirements | |
run: pip3 install -r requirements.txt | |
- name: Download latest firmware files | |
with: | |
repo: bitcraze/crazyflie-release | |
workflow: nightly.yml | |
uses: dawidd6/action-download-artifact@v4 | |
- name: Reset power to all devices | |
run: python3 management/usb-power-reset.py -a reset | |
- name: Upgrade devices to latest firmware | |
run: python3 management/program.py --file cf2-nightly/firmware-cf2-nightly.zip --retries 3 | |
- name: Run test suite | |
run: pytest --verbose --html=${{env.TEST_FILE}}.html --junit-xml ${{env.TEST_FILE}}.xml -m sanity tests/QA | |
- name: Upload test file | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{env.TEST_FILE}}_results | |
if-no-files-found: warn | |
path: | | |
${{env.TEST_FILE}}.html | |
${{env.TEST_FILE}}.xml | |
assets/style.css | |
- name: Pretty print test results | |
if: ${{ !cancelled() }} | |
uses: pmeier/pytest-results-action@main | |
with: | |
path: ${{env.TEST_FILE}}.xml | |
summary: true | |
title: Test results |