Automate release process
We could make it easier to release tickety tick by automating it a bit better.
- [x] Add a task for zipping the safari extension
- [x] Add a script to draft a new release and upload the bundles to github (maybe for running in CI on new tags)
Optional:
- [ ] Use the commit history/changelog to create release descriptions
Some work-in-progress notes on that:
Following up on a discussion I had with @pmeinhardt on https://github.com/bitcrowd/tickety-tick/issues/212, I quickly tried out np introduced in #184 to automatically create Github releases. It works perfectly fine for that, but as expected does not support adding downloadable release artifacts 😞 (people already wanted to use it for uploading extensions)
What works pretty neat is this Github Action: https://github.com/actions/upload-release-asset. The example workflow essentially combines two actions (one for creating the release and one for adding a downloadable artifact to the new release).
We'll probably need to combine a few tools. Some more are:
- chrome-webstore-upload-cli
- web-ext-sign for Firefox betas
- web-ext-submit for Firefox releases
Here is an example workflow from another extension project which does the two uploads.
Steps 🐾
I'm not sure how confusing it may be to run CI on Circle plus have Github Actions or if it's worth to port the whole project to use Github Actions. However, similar things are also possible with CircleCi and the core steps are probably the same for any approach:
- Push a tag (however generated and at best with description)
- Run checks
- Build, sign and upload extensions
- Upload release artifacts
Artifacts 🛍
I'm also not 100% sure about which artifacts we actually need to provide - still have to do some research here. But it currently looks like we should offer the bundled chrome.zip file for Chrome users (allows them to load the extension "unpacked") and a signed .xpi file for Firefox users.
Done as a semi automated, Capistrano-like flow 🐘
hello
hello