mirror of
https://github.com/meowarex/rl-mobile.git
synced 2026-06-18 05:23:12 +10:00
@@ -2,6 +2,10 @@ name: Build Release App
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -16,6 +20,12 @@ jobs:
|
|||||||
|
|
||||||
- uses: gradle/actions/setup-gradle@v4
|
- 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
|
- name: Build
|
||||||
working-directory: Manager
|
working-directory: Manager
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -8,13 +8,27 @@ on:
|
|||||||
- "**/*.md"
|
- "**/*.md"
|
||||||
|
|
||||||
jobs:
|
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:
|
Build:
|
||||||
|
needs: Version
|
||||||
uses: ./.github/workflows/build.yml
|
uses: ./.github/workflows/build.yml
|
||||||
|
with:
|
||||||
|
version: ${{ needs.Version.outputs.version }}
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
Release:
|
Release:
|
||||||
name: Publish Release
|
name: Publish Release
|
||||||
needs: Build
|
needs: [Version, Build]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -54,5 +68,5 @@ jobs:
|
|||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
automatic_release_tag: latest
|
automatic_release_tag: latest
|
||||||
prerelease: false
|
prerelease: false
|
||||||
title: Latest Release
|
title: v${{ needs.Version.outputs.version }}
|
||||||
files: ./dist/**
|
files: ./dist/**
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ data class GithubRelease(
|
|||||||
val assets: List<GithubReleaseAssets>,
|
val assets: List<GithubReleaseAssets>,
|
||||||
@SerialName("tag_name")
|
@SerialName("tag_name")
|
||||||
val tagName: String,
|
val tagName: String,
|
||||||
|
val name: String? = null,
|
||||||
@SerialName("html_url")
|
@SerialName("html_url")
|
||||||
val htmlUrl: String,
|
val htmlUrl: String,
|
||||||
) {
|
) {
|
||||||
|
|||||||
+3
-3
@@ -147,13 +147,13 @@ class UpdaterViewModel(
|
|||||||
// Fetch releases from GitHub (60s local cache)
|
// Fetch releases from GitHub (60s local cache)
|
||||||
val releases = github.getManagerReleases().getOrThrow()
|
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
|
val (version, release, apkUrl) = releases
|
||||||
.mapNotNull { release ->
|
.mapNotNull { release ->
|
||||||
val version = SemVer.parseOrNull(release.tagName)
|
val version = SemVer.parseOrNull(release.name?.removePrefix("v") ?: "")
|
||||||
?: return@mapNotNull null
|
?: 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
|
?: return@mapNotNull null
|
||||||
|
|
||||||
Triple(version, release, asset.browserDownloadUrl)
|
Triple(version, release, asset.browserDownloadUrl)
|
||||||
|
|||||||
Reference in New Issue
Block a user