Goal: Analyse the release process and identify steps that can be automated.
Context: the current release process is fully manual and cumbersome (see T332786). That makes is too time consuming and prone to errors and overlooking things. Threshold for new engineers to step it is also too high. Confidence that we are doing it right is usually low.
Open Question:
- Check for the "latest" tag. What should we tag as the "latest" release?
Acceptance Criteria:
- Write tickets to automate the release process
Some tickets may hypothetically be:
- script for the creation of the needed env files with the needed variables
- script that checks the last commit hashes of the different extensions, till we get to the point that everything is done for us and we just need to do the last checking 💥
- store the commit hashes to ensure reproducibility of the releases, see also T340226
- create make target for dockerhub publish
- fix the dockerhub publish script https://github.com/wmde/wikibase-release-pipeline/pull/499 (or move all this stuff to CI)
- make the tarball upload script work with yubikeys and gpg-agent in ssh-mode (or move all this stuff to CI)
- make it possible to publish images and tarballs no matter whether you are using yubikey or ssh keys (at the moment it's only possible with ssh keys from your .ssh file)
- build publish workflow in gh actions (CI) - using secrets for keys