-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Guide
Make sure to sure to go through the normal set up instructions to ensure all requirements are installed, setup scripts are ran, and OAuth2 credentials are set up.
This project uses PlaformIO. You can run it from the commmandline, e.g:
-
pio run -t monitor
builds, uploads and starts a serial monitor. -
pio run -t uploadfs
builds thedata
folder into a filesystem and uploads it to the device.
Note: Previous monitoring processes need to be closed before uploading anything!
Another way is to install the PlatformIO VSCode extension and use its GUI to "Upload and Monitor" and "Upload Filesystem Image".
This project uses clang-format. The root folder of the repository contains the used .clang-format
file. Remember to always format before pushing.
You don't need to always go though the access point website to edit settings. You can also create a config.json based on the example in ./misc/m5booking.openapi.yaml
(can be inspected in swagger.io) and insert it into the ./data/
folder. This way this config is automatically set up when after uploading the filesystem.
Note: the "gcalsettings"."token" is shown as a string in the openapi definition, but you should set it to the whole non-stringified object from token.json
.
Normal CI runs on every push, but the release CI runs only when a tag is pushed. The version in platformio.ini needs be updated too.
# Change version defines in buildflags in platformio.ini to x version and commit
git commit -m "Bump version to 5.5.5"
git push
# Add and push the corresponding version tag
git tag v5.5.5
git push origin v5.5.5
Now in the GitHub Actions page of the project there should be a yellow mark in the latest job, because it's waiting for a review to continue a beta deployment. Approve the review to release the beta build.
If the beta testing goes well, the build can be published to stable. After the beta release, the job should start waiting for a review to be released to stable. Approve the review it to release the stable build. If the build isn't good enough for a stable release, the job can be left alone and never confirmed.