For Milestone 1, we need to implement the fact the evergreen-client upgrades Jenkins.
From a high level, this should be done as follows:
- The client is instructed to perform an upgrade (Not sure: I think this is
- It downloads what needs to be (plugins, new war) and puts them at the expected place for next startup (see below)
- Restart Jenkins to pick-up update
- Health-check it, see JEP-304
- If unhealthy, roll it back to previous, see JEP-302
- What if the current state, i.e. even before upgrading, is unhealthy already?
- "expected place for next startup": we should probably define some location on the disk for caching those things, for instance to be able to revert in case we need to rollback without downloading things again, etc.