Currently, changes to our installer are error-prone and time-consuming to test (see regression of https://github.com/tiny-pilot/tinypilot/pull/1615). It's worth investing in some e2e testing scripts to make sure the install works as we expect.
Notes
The rough idea I have in mind is:
Create a Dockerfile that inherits from debian:bullseye and makes whatever changes to make our install work (e.g., we'll probably have to populate a /boot/config.txt file with dummy data)
Build that Dockerfile in CI and run it on an ARM instance
Run a script that runs through different install scenarios to verify that our install does what we expect
Things to test
[ ] Verify that changes to config files have been made (and verify that expected lines appear exactly once)
e.g. to /boot/config.txt and /etc/modules
[ ] Verify that tinypilot/ustreamer user accounts are created
[ ] Verify that TC358743-based installs work as expected
[ ] Verify that MS2109-based installs work as expected
One of the things we lost when we vanquished Ansible from our install process (https://github.com/tiny-pilot/tinypilot/issues/1596) was that Ansible tested the idempotence of a TinyPilot install.
Currently, changes to our installer are error-prone and time-consuming to test (see regression of https://github.com/tiny-pilot/tinypilot/pull/1615). It's worth investing in some e2e testing scripts to make sure the install works as we expect.
Notes
The rough idea I have in mind is:
Dockerfile
that inherits fromdebian:bullseye
and makes whatever changes to make our install work (e.g., we'll probably have to populate a/boot/config.txt
file with dummy data)Dockerfile
in CI and run it on an ARM instanceThings to test
/boot/config.txt
and/etc/modules