Release procedure
This contains the steps required to release a new Inyoka version. It also gives some tips for the deployment of inyoka to the target server.
Notify users
Before a deployment starts, notify your users. This can be done for example via a global status message on your website or a maintenance incident on a special status web page.
Pick a version
If you want to tag a new version, take a moment to decide which version string to use.
Inyoka uses bump-my-version to partly formalize the version schema described in Releases. So, the following command shows the options you have to pick a new version:
bump-my-version show-bump
Theme
Merge the staging branch into master. Create a new version in the theme repository. And merge it back into staging.
git remote update
git stash
git checkout staging
git pull --rebase
# merge staging into master
git checkout master
git pull --rebase
git merge staging --no-ff
bump-my-version bump minor --dry-run -v # remove dry-run and verbose flags, if good
git push
git push -u origin v0.X.Y
# merge master into staging back (ff for merge commit)
git checkout staging
git merge master
git push
# optionally, switch branch
#git checkout my-cool-feature
# optionally, restore content from stash
#git stash pop
Inyoka
Basically, the same as for the theme.
git remote update
git stash
git checkout staging
git pull --rebase
# merge staging into master
git checkout master
git pull --rebase
git merge staging --no-ff
# add date to CHANGELOG
vim ChangeLog.rst
git add ChangeLog.rst
git commit -m 'Update date of Changelog'
bump-my-version bump minor --dry-run -v # remove dry-run and verbose flags, if good
git push
git push -u origin v0.X.Y
# merge master into staging back (ff for merge commit)
git checkout staging
git merge master
git push
# optionally, switch branch
#git checkout my-cool-feature
# optionally, restore content from stash
#git stash pop
docker-setup
Merge main (with newest changes) into the branch uu-production
git checkout uu-production
git merge main
git push
Build docker images
Start the action on the Inyoka branches
(optional) staging
master
Deploy to target
Start VPN, if needed.
Connect to target where Inyoka is running via SSH
eval $(ssh-agent)
ssh-add ~/.ssh/ubuntuusers_ed25519
ssh uu-brain
Use ansible to deploy Inyoka
cd ~/Dev/uu-ansible
source activate.sh
ansible-playbook site.yml --check --diff -t inyoka -l brain.ubuntu-eu.org
(Remove --check
, if everything looks good, to make changes)