Building, Testing, Running, and Releasing
Setup
Follow the instructions in Development Environment to set up the required tools.
Make a clone of the repository:
git clone git@github.com:empriselab/mote.git
or
git clone https://github.com/empriselab/mote.git
Build
Compile source and generate executable artifacts.
# Build Mote's firmware
task firmware:build
# Build the configuration webpage
task config:build
# Build the book
task book:build
Test
Run unit tests.
# Run api test cases
task api:test
# Run ffi test cases
task ffi:test
# Test code examples in the book
task book:test
Run
Run a target.
Running firmware requires connecting to Mote using a SWD debug probe.
# Deploy firmware to Mote (first time doing so)
task firmware:provision
# Deploy firmware to Mote (any time after)
task firmware:deploy
# Serve the configuration page
task config:run-dev
# Serve / open the book
task book:open
Release
Release artifacts are built and uploaded automatically via continuous integration.
mote-firmware- Released on any tag to
mote-corematching the patternmote-firmware-vX.X.X, wherevX.X.Xmatches the semantic version of themote-firmwarecrate. - Automated via this GitHub Action.
- Released on any tag to
mote-c- Released on any tag to
mote-corematching the patternmote-c-vX.X.X, wherevX.X.Xmatches the semantic version of themote-fficrate. - The static library, header, and schemas are attached to the release via this GitHub Action.
- Released on any tag to
mote-python- Released on any tag to
mote-corematching the patternmote-python-vX.X.X, wherevX.X.Xmatches the version inmote-ffi/pyproject.toml. - Cross-platform wheels are built and published to PyPI via this GitHub Action.
- Released on any tag to
mote-rust(themote-apicrate)- Released on any tag to
mote-corematching the patternmote-rust-vX.X.X, wherevX.X.Xmatches the semantic version of themote-apicrate. - The crate is published to crates.io via this GitHub Action.
- Released on any tag to
mote-configuration- Released on any tag to
mote-corematching the patternmote-configuration-vX.X.X, wherevX.X.Xmatches the version inmote-configuration/package.json. - The built site is attached to the release via this GitHub Action.
- Released on any tag to
mote-book- Built and deployed to GitHub pages on every commit to main via the GitHub Action.