Releasing
Esta página aún no está disponible en tu idioma.
A release is a tag. scripts/release.sh X.Y.Z bumps the version, moves the ## [Unreleased] section of CHANGELOG.md under a dated heading, commits release: vX.Y.Z, tags it and pushes. The tag starts .github/workflows/release.yml.
scripts/release.sh 0.2.0 --dry-run # shows what would happenscripts/release.sh 0.2.0 # master only, clean tree, tag must not existscripts/release.sh 0.2.0-rc.1 # a prerelease: published, but the app ignores itWhat the workflow does
Section titled “What the workflow does”- Checks that the tag equals the version in
Cargo.toml, then runs fmt, clippy and the tests. - Builds
Ferrocast.appwithscripts/bundle.sh. - Packages
Ferrocast-X.Y.Z.dmg(for people),Ferrocast-X.Y.Z.zip(what the in-app updater downloads) andSHA256SUMS.txt(the updater checks the ZIP against it). - Publishes a GitHub Release with the changelog section as notes. A tag with a suffix is a prerelease.
- For stable releases, commits the update of
Formula/ferrocast.rb(new source tarball and sha256) straight tomaster, sobrew upgrade ferrocastsees the version right away.
Signing
Section titled “Signing”With no secrets the app is signed ad-hoc. To sign with a Developer ID and notarize, add these repository secrets; nothing else changes:
APPLE_CERT_P12(base64 of the Developer ID Application certificate),APPLE_CERT_PASSWORD,APPLE_SIGN_IDENTITY.APPLE_NOTARY_KEY(base64 of the App Store Connect.p8key),APPLE_NOTARY_KEY_ID,APPLE_NOTARY_ISSUER.
Once releases are notarized, switch the default of “Install updates” to automatic: a self-update then keeps the Accessibility permission.