Squirrel Release Manual¶
-
Update the version of
squirrel/data/squirrel.yaml
if there are changes since last release. -
Run
package/bump_version
to update app version; push the commit and version tag to GitHub.Pushing the version tag will trigger a release CI build on GitHub Actions.
-
At the GitHub Releases page, edit the draft release created from CI, publish it as latest release, then download the zip archive.
-
Copy/move the downloaded file to local source tree, under
squirrel/package/
. -
Put private key file in
squirrel/package/sign/
.The private key for signing auto-update Squirrel releases is owned by Rime Keyholder.
-
In GitHub Actions, find the release CI workflow run with the version tag, then copy the sha256 checksum from build log, near the end of "Build Squirrel" step.
For example:
Text Onlybash package/make_archive adding: Squirrel.pkg (deflated 0%) sha256 checksum: 8f3f3e9aa2e923e88220ea603dcbd3b70c3a88d8177a6c487cfdccc946b25379 Squirrel-0.16.1.zip
-
Run
The script generatespackage/*appcast.xml
. -
Prepare to update project website.
Assume GitHub repo
rime/<project>
is cloned to local directory./<project>
; doBashcp squirrel/package/appcast.xml home/blog/source/release/squirrel/appcast.xml cp squirrel/package/testing-appcast.xml home/blog/source/testing/squirrel/appcast.xml cat <<EOF > home/blog/source/release/squirrel/index.md title: 【鼠鬚管】更新日誌 comments: false $(date '+date: %Y-%m-%d %H:%M:%S') --- EOF cat squirrel/CHANGELOG.md >> home/blog/source/release/squirrel/index.md cp home/blog/source/release/squirrel/index.md home/blog/source/testing/squirrel/index.md
-
Also update latest Squirrel version and download URL in -
home/blog/source/_data/downloads.yaml
-home/blog/source/download/index.md
-
Test the website locally with Hexo:
Verify the updated links are valid. -
Commit changes with commit message
chore(release): squirrel ${version} :tada:
and push torime/home
.This will trigger automated update to the site https://rime.im.