Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/development-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ jobs:
apk="AppHarbor-v${version}-dev.apk"
cp "$source_apk" "$apk"
sha256sum "$apk" > "$apk.sha256"
cp "$apk" AppHarbor-latest-dev.apk
sha256sum AppHarbor-latest-dev.apk > AppHarbor-latest-dev.apk.sha256

cat > release-notes.md <<EOF
# AppHarbor v${version} — Development Preview
Expand All @@ -86,15 +88,15 @@ jobs:

## Install

Download **${apk}** from **Assets** below and install it on Android.
Download **${apk}** from **Assets** below and install it on Android. For a permanent one-tap direct link, use **AppHarbor-latest-dev.apk**; both APK names contain the identical build.

**Build info:** version ${version}.d · commit ${short_sha} · development channel

> This preview is debug-signed for active development. If Android reports a signing conflict with an older debug build, uninstall that older debug build first.

## Verification

A SHA-256 checksum is attached as **${apk}.sha256**.
SHA-256 checksums are attached for both the versioned APK and the permanent download filename.
EOF

echo "apk=$apk" >> "$GITHUB_OUTPUT"
Expand All @@ -114,7 +116,7 @@ jobs:
git tag -f "$TAG" "$GITHUB_SHA"
git push origin "refs/tags/$TAG" --force
gh release edit "$TAG" --title "AppHarbor v${VERSION} — Development Preview" --notes-file release-notes.md --prerelease
gh release upload "$TAG" "$APK" "$APK.sha256" --clobber
gh release upload "$TAG" "$APK" "$APK.sha256" AppHarbor-latest-dev.apk AppHarbor-latest-dev.apk.sha256 --clobber

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the permanent asset available while replacing it

On every update to the existing rolling release, this clobbers the asset targeted by the README’s permanent download URL. The CLI documents that with --clobber, “existing assets are deleted before new assets are uploaded” and a failed upload loses the originals (gh release upload); therefore, a transient API or network failure after deletion leaves the prominent AppHarbor-latest-dev.apk link returning 404 until another successful run, while even successful updates have a deletion window. Stage the replacement under another name and swap it safely, or restore/retry the stable asset on failure.

Useful? React with 👍 / 👎.

else
gh release create "$TAG" "$APK" "$APK.sha256" --target "$GITHUB_SHA" --title "AppHarbor v${VERSION} — Development Preview" --notes-file release-notes.md --prerelease
gh release create "$TAG" "$APK" "$APK.sha256" AppHarbor-latest-dev.apk AppHarbor-latest-dev.apk.sha256 --target "$GITHUB_SHA" --title "AppHarbor v${VERSION} — Development Preview" --notes-file release-notes.md --prerelease
fi
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@ AppHarbor brings F-Droid repositories, GitHub, GitLab, Codeberg, Gitea, Forgejo,

The latest tested development APK is published as a GitHub prerelease:

**[Download AppHarbor Dev](https://github.com/stupidgiraffe/AppHarbor/releases/tag/appharbor-dev)**
**[Download the latest development APK](https://github.com/stupidgiraffe/AppHarbor/releases/download/appharbor-dev/AppHarbor-latest-dev.apk)** · [Release notes and checksum](https://github.com/stupidgiraffe/AppHarbor/releases/tag/appharbor-dev)

The release includes:

- `AppHarbor-v1.0.5-dev.apk`
- a SHA-256 checksum
- `AppHarbor-latest-dev.apk` (permanent direct-download filename)
- a versioned APK, such as `AppHarbor-v1.0.5-dev.apk`
- SHA-256 checksums for both names
- version and source commit information

This channel is for active AppHarbor development. A production-signed release channel will follow when the app is ready for broader distribution.
Expand Down
Loading