Objective
Over the next month, we will be taking a detour from the typical development work, and work on improving our DevOps. This encompasses the implementation of proper repository access protocol, the development of documentation, setting up a CI pipeline to run our tests before merge, and the completion of a testing system.
Outcomes
Goal | Requirements |
---|---|
Prevent unauthorized or accidental repository changes. | Implement repository control that enforces branching over forking, no direct pushes to main, and a branch structure that allows for easy testing. |
Make troubleshooting easy | Implement CI with automatic testing to ensure that small bugs are caught. Document our current system more extensively to ensure corrections can be made quickly. |
Complete test coverage | Centralize existing tests into pytest (command maintains its own tests right now). Separate integration and unit tests in the tests folder. Develop a testing system that allows for easy setup of OBS and mock flight data as input, assertion of system outputs, and recording results. Finish writing remaining integration tests, build system tests. |
Requirements
Requirement | Implementation | Assigned to | |
---|---|---|---|
1 | Repository control: No pushes to main | ||
2 | CI: Identify a CI that fits our needs and secure it. |
| Shrinjay |
3 | CI: Centralize all existing unit tests in PyTest (mostly command module) | ||
4 | CI: Setup CI to run tests on every github PR, identify if we want to run unit and integration or just unit, and seperate. | ||
5 | Test Rig: Make OBS easier to setup (documentation, OBS scripting?) | ||
6 | Test Rig: Develop mock flight data solution | ||
7 | Test Rig: Develop test class for all tests to subclass off, refactor existing tests. |
Open Questions
Question | Answer |
---|---|