Updating & Versions

This commit is contained in:
2026-05-20 21:47:07 +10:00
parent cceffc9438
commit 5a47214016
5 changed files with 31 additions and 5 deletions
+10
View File
@@ -2,6 +2,10 @@ name: Build Release App
on:
workflow_call:
inputs:
version:
required: true
type: string
jobs:
build:
@@ -16,6 +20,12 @@ jobs:
- uses: gradle/actions/setup-gradle@v4
- name: Inject version
run: |
sed -i 's/versionName = ".*"/versionName = "${{ inputs.version }}"/' Manager/app/build.gradle.kts
sed -i "s/versionCode = .*/versionCode = ${{ github.run_number }}/" Manager/app/build.gradle.kts
grep -E "versionCode|versionName" Manager/app/build.gradle.kts
- name: Build
working-directory: Manager
env:
+16 -2
View File
@@ -8,13 +8,27 @@ on:
- "**/*.md"
jobs:
Version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.set.outputs.version }}
steps:
- uses: actions/checkout@v4
- id: set
run: |
BASE=$(cat .version | tr -d '[:space:]')
echo "version=$BASE.${{ github.run_number }}" >> $GITHUB_OUTPUT
Build:
needs: Version
uses: ./.github/workflows/build.yml
with:
version: ${{ needs.Version.outputs.version }}
secrets: inherit
Release:
name: Publish Release
needs: Build
needs: [Version, Build]
runs-on: ubuntu-latest
permissions:
contents: write
@@ -54,5 +68,5 @@ jobs:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: latest
prerelease: false
title: Latest Release
title: v${{ needs.Version.outputs.version }}
files: ./dist/**
+1
View File
@@ -0,0 +1 @@
0.3
@@ -10,6 +10,7 @@ data class GithubRelease(
val assets: List<GithubReleaseAssets>,
@SerialName("tag_name")
val tagName: String,
val name: String? = null,
@SerialName("html_url")
val htmlUrl: String,
) {
@@ -147,13 +147,13 @@ class UpdaterViewModel(
// Fetch releases from GitHub (60s local cache)
val releases = github.getManagerReleases().getOrThrow()
// Find the latest release + APK release asset
// Find the latest release — version is parsed from the release title (e.g. "v1.0.5")
val (version, release, apkUrl) = releases
.mapNotNull { release ->
val version = SemVer.parseOrNull(release.tagName)
val version = SemVer.parseOrNull(release.name?.removePrefix("v") ?: "")
?: return@mapNotNull null
val asset = release.assets.find { it.name == "rl-manager-${release.tagName}.apk" }
val asset = release.assets.find { it.name == "rl-manager.apk" }
?: return@mapNotNull null
Triple(version, release, asset.browserDownloadUrl)