waterloo-rocketry / minerva-old

Waterloo Rocketry's custom slackbot
3 stars 2 forks source link

Refactor AWS Deployment #65

Closed QuantumManiac closed 1 year ago

QuantumManiac commented 1 year ago

Rewrote the workflows to deploy Minerva to AWS using AWS's Cloud Development Kit, along with various changes to overall repo configurations to facilitate this new workflow

The proposed new development workflow is as follows:

Note that this does not work too well when multiple features are being worked on in parallel, as both would need to merge to development whenever they need to test their functionality in staging, ideally with their feature in isolation from anything else that's also in development. I don't foresee this being too much of an issue because testing deployments are meant to be short-lived so devs would usually not step on each others' feet.

Repo changes that cannot be seen in this PR

Dev documentation for developing minerva will come after this. This will include info on things like

I've left comments in the code to help guide and clarify. Please leave questions/feedback as needed

This change is Reviewable

BluCodeGH commented 1 year ago

In terms of the branching workflow, I think currently you are trying to combine two fundamentally different models of development and that's what leading to the messy setup.

On the one hand, we want people to be able to have a fast develop/test cycle which means quick merges to develop. Wanting multiple developers being able to work in parallel implies that development needs to be highly transient - where your code is only on it for as long as it takes you to test your feature.

On the other hand, we want to ensure that only working code gets onto master, which means doing a review process for a development->master merge and ensuring it has been well tested on development. That implies code spending a long time on development.

IMO the more important thing here is the fast develop/test cycle, and instead of using branch protection to make sure only good code gets onto master we use the usual review process. So that would make the process: