This document describes the weekly process of promoting software from development -> test -> production. It is only of interest to the core team or anyone wanting to maintain their own cacophony server.
This document covers server software and the thermal camera software. It does not currently explain the release processes for our two android apps - birdmonitor and sidekick.
This document is written to be followed from top to bottom each release day. Before starting the process make sure the previous release in test has been pushed to production.
Start by releasing software on the servers and then the camera software.
Updates to our Raspberry Pi software is managed through Salt. Any configuration in the saltops test branch is automatically deployed to specified test devices. Similarly any configuration merged into the prod branch is automatically deployed onto all non-test devices.
The dev branch contains changes that are due to be merged into test. They are not automatically deployed.
As soon as possible after the update is finished, check (or get someone else to) that the server and a test thermal camera is working as expected.
The steps are: git fetch origin git checkout -b update-test -t origin/test git merge origin/dev (review changes) git push Create PR for the branch you've just pushed, get someone to review, then merge. Update the release notes on docs.cacophony.org.nz as described at the top of this document.
Connect to the salt server
Run: sudo find-server-upgrades
For each package that needs upgrading:
Review the actual changes involved (by consulting the release notes)
Confirm the changes are ok to go to prod
Find evidence in the test environment
Talk to the responsible developer
SSH to the server(s) where the software runs
server-prod-processing / server-prod-processing02
Get the package URL from the Github release page
Start by promoting any changes from test to prod.
If you haven't already, clone the saltops repo Pull the latest changes from all upstream branches: git fetch origin Review the new changes in test git log --reverse origin/prod..origin/test For each change confirm on a test device that the change has been working ok. Asking the developer responsible for the work to do this is encouraged. Be aware that some changes also require a change to top.sls in the master branch. This should be mentioned in the Once you are happy with these changes to to production, merge them into prod: git checkout -b update-prod -t origin/prod git merge origin/test git push Create a PR for the branch you've just pushed, get someone to review, then merge. Update the release notes on docs.cacophony.org.nz.
The instructions above mention updates to the release notes. The details for how they work are as follows: