-
Notifications
You must be signed in to change notification settings - Fork 0
110 lines (107 loc) · 4.8 KB
/
Copy pathandroid.yml
File metadata and controls
110 lines (107 loc) · 4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
name: Android
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "17"
- uses: android-actions/setup-android@v3
- name: Install Android SDK
run: sdkmanager "platforms;android-36" "build-tools;36.0.0"
- uses: gradle/actions/setup-gradle@v5
with:
gradle-version: "9.5.0"
- name: Restore release signing key
env:
SIGNING_KEY_BASE64: ${{ secrets.ANDROID_SIGNING_KEY_BASE64 }}
run: |
mkdir -p "$RUNNER_TEMP/signing"
printf '%s' "$SIGNING_KEY_BASE64" | base64 --decode > "$RUNNER_TEMP/signing/release.jks"
- name: Test, lint, and build
env:
ANDROID_SIGNING_STORE_FILE: ${{ runner.temp }}/signing/release.jks
ANDROID_SIGNING_STORE_PASSWORD: ${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }}
ANDROID_SIGNING_KEY_ALIAS: ${{ secrets.ANDROID_SIGNING_KEY_ALIAS }}
ANDROID_SIGNING_KEY_PASSWORD: ${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }}
run: gradle --no-daemon :app:testDebugUnitTest :app:lintRelease :app:assembleRelease
- name: Create release files
env:
VERSION: "0.7.1"
run: |
mkdir -p release-dist
apk="release-dist/LiveTranslate-v${VERSION}-arm64-v8a.apk"
metadata="release-dist/LiveTranslate-v${VERSION}-metadata.json"
latest_apk="release-dist/LiveTranslate-latest-arm64-v8a.apk"
latest_metadata="release-dist/LiveTranslate-latest-metadata.json"
cp app/build/outputs/apk/release/app-release.apk "$apk"
cp "$apk" "$latest_apk"
sha256="$(sha256sum "$apk" | cut -d' ' -f1)"
size="$(stat -c '%s' "$apk")"
jq -n \
--arg version "$VERSION" \
--arg sha256 "$sha256" \
--argjson size "$size" \
--arg commit "$GITHUB_SHA" \
--arg run "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
--arg repository "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \
'{
schemaVersion: 1,
app: "Live Translate",
packageName: "com.jadenjsj.livetranslate",
versionName: $version,
versionCode: 12,
channel: "prerelease",
releaseTag: ("v" + $version),
buildType: "release",
minSdk: 26,
targetSdk: 36,
compileSdk: 36,
supportedAbis: ["arm64-v8a"],
supportedCpuFamilies: ["Armv8-A", "Armv9-A"],
signingCertificateSha256: "9490968e5b1b76341dbfda5ff5f8d591d1ebbb427c10f69612cfa5285390e4de",
apkSha256: $sha256,
apkSizeBytes: $size,
sourceCommit: $commit,
buildRun: $run,
releasePage: ($repository + "/releases/tag/v" + $version),
apkUrl: ($repository + "/releases/download/v" + $version + "/LiveTranslate-v" + $version + "-arm64-v8a.apk"),
latestMetadataUrl: ($repository + "/releases/download/latest-prerelease/LiveTranslate-latest-metadata.json"),
latestApkUrl: ($repository + "/releases/download/latest-prerelease/LiveTranslate-latest-arm64-v8a.apk"),
providers: ["qwen", "openai", "volcengine"],
models: ["qwen3.5-livetranslate-flash-realtime", "gpt-realtime-translate", "Seed LiveInterpret 2.0"],
notes: "Pre-release. Fixes system Back navigation in History and adds Material-style forward/pop transitions for interpreter, history list, and session detail screens."
}' > "$metadata"
cp "$metadata" "$latest_metadata"
- uses: actions/upload-artifact@v4
with:
name: LiveTranslate-v0.7.1-arm64-v8a
path: release-dist/
if-no-files-found: error
retention-days: 14
- name: Publish stable latest-prerelease URLs
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
env:
GH_TOKEN: ${{ github.token }}
run: |
if ! gh release view latest-prerelease >/dev/null 2>&1; then
gh release create latest-prerelease \
--target "$GITHUB_SHA" \
--title "Live Translate · latest prerelease" \
--prerelease \
--notes "Rolling prerelease assets for update clients. Read LiveTranslate-latest-metadata.json before downloading the APK."
fi
gh release upload latest-prerelease \
release-dist/LiveTranslate-latest-metadata.json \
release-dist/LiveTranslate-latest-arm64-v8a.apk \
--clobber