dcppc / uncle-archie

Uncle Archie is a home-brewed continuous integration server for pull request checks and push-to-deploy functionality. https://pages.charlesreid1.com/uncle-archie
Other
1 stars 0 forks source link

DevOps Documentation #2

Open charlesreid1 opened 6 years ago

charlesreid1 commented 6 years ago

For the purposes of dcppc, we need to document the DevOps setup for Uncle Archie.

This would be good to add to the documentation under "Example Setup" or similar.

Heroku? No, b/c can't build things.

charlesreid1 commented 6 years ago

Although, in theory, once you abstract away the details, certain tasks that don't require building things (e.g., running a spellchecker or a linting script) could be run with an Uncle Archie instance on Heroku. So, we don't want to design assuming that Uncle Archie will never run on Heroku - we should design it such that the non-Heroku-runnable parts can be removed as a module, and the rest can be run on Heroku.

(runs on heroku flag)

charlesreid1 commented 6 years ago

The problem with writing tests is that you so quickly run into meta-meta-problems.

Example: Uncle Archie runs on Heroku. You want to check if certain software is available, or where it is. If it isn't Python you start to link in higher-level interactions.

The other hooks end up using python to set up a virtual environment, and run tests via python, and tests are a bewildering forest of patterns, decorators, confusing output/error redirection, logging, and object oriented programming just to make everything a bit more complicated.

If you're running Docker via Uncle Archie, now you've got even more levels beneath you, because you're running Docker, mounting a repo or cloning a repo, managing the docker pod from python, via the command line, and trying to manage and monitor the output status/return codes, etc. Testing is a very meta programming task.