Skip to content

Commit 79b8d06

Browse files
committed
fea: add release android actions
1 parent 6f37df6 commit 79b8d06

File tree

5 files changed

+92
-3
lines changed

5 files changed

+92
-3
lines changed

.github/workflows/preview-api.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ jobs:
5151
--var TURSO_CONNECTION_URL:${{ env.TURSO_CONNECTION_URL }}
5252
--var TURSO_AUTH_TOKEN:${{ env.TURSO_AUTH_TOKEN }}
5353
--var TRUSTED_ORIGINS:${{ env.TRUSTED_ORIGINS }}
54-
--var BASE_URL:${{ env.BASE_URL }}
54+
--var BASE_URL:${{ env.BASE_URL }}

.github/workflows/release-android.yml

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: "publish"
2+
3+
env:
4+
BASE_URL: ${{ secrets.BASE_URL }}
5+
6+
on:
7+
push:
8+
branches:
9+
- production
10+
paths:
11+
- apps/mobile/**
12+
- crates/dorf-tauri/**
13+
14+
jobs:
15+
publish-android:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: write
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
23+
- name: Setup Java
24+
uses: actions/setup-java@v4
25+
with:
26+
distribution: "zulu"
27+
java-version: "17"
28+
29+
- name: Setup Android SDK
30+
uses: android-actions/setup-android@v3
31+
32+
- name: Install NDK
33+
run: sdkmanager "ndk;27.0.11902837"
34+
35+
- name: Set up Bun
36+
uses: oven-sh/setup-bun@v1
37+
with:
38+
bun-version: latest
39+
40+
- name: Modify env.ts
41+
run: |
42+
sed -i "s/export const SERVER_URL = .*/export const SERVER_URL = '${{ env.BASE_URL }}';/" apps/mobile/env.ts
43+
44+
- name: install Rust stable
45+
uses: dtolnay/rust-toolchain@stable
46+
with:
47+
targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android
48+
49+
- name: Install dependencies
50+
run: bun install
51+
52+
- name: Build app bundle
53+
run: bun run tauri android build
54+
env:
55+
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/27.0.11902837
56+
57+
- name: Extract android signing key from env
58+
run: |
59+
echo "${{ secrets.ANDROID_RELEASE_KEYSTORE }}" > ./crates/dorf-tauri/gen/android/release.jks.base64
60+
base64 -d ./crates/dorf-tauri/gen/android/release.jks.base64 > ./crates/dorf-tauri/gen/android/release.decrypted.jks
61+
62+
- name: Sign APK
63+
run: |
64+
${{ env.ANDROID_HOME }}/build-tools/34.0.0/apksigner sign --ks ./crates/dorf-tauri/gen/android/release.decrypted.jks \
65+
--ks-key-alias ${{ secrets.ANDROID_RELEASE_KEY }} \
66+
--ks-pass pass:${{ secrets.ANDROID_RELEASE_PASSWORD }} \
67+
--key-pass pass:${{ secrets.ANDROID_RELEASE_KEY_PASSWORD }} \
68+
--out ./crates/dorf-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-signed.apk \
69+
./crates/dorf-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk
70+
71+
- name: Get project version
72+
id: package-version
73+
uses: martinbeentjes/npm-get-version-action@v1.3.1
74+
75+
- name: Rename APK file
76+
run: |
77+
mv ./crates/dorf-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-signed.apk ./crates/dorf-tauri/gen/android/app/build/outputs/apk/universal/release/myappliation-${{ steps.package-version.outputs.current-version}}.apk
78+
79+
- name: Publish
80+
uses: softprops/action-gh-release@v1
81+
with:
82+
draft: true
83+
name: App v${{ steps.package-version.outputs.current-version}}
84+
tag_name: v${{ steps.package-version.outputs.current-version}}
85+
generate_release_notes: true
86+
files: |
87+
./crates/dorf-tauri/gen/android/app/build/outputs/apk/universal/release/myapplication-${{ steps.package-version.outputs.current-version}}.apk

apps/api/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@dorf/api",
33
"version": "0.1.0",
44
"scripts": {
5-
"dev": "NODE_ENV=development wrangler dev src/index.ts --ip 192.168.139.70 --port 3003",
5+
"dev": "NODE_ENV=development wrangler dev src/index.ts --ip 192.168.1.115 --port 3003",
66
"deploy": "wrangler deploy --minify src/index.ts",
77
"db:generate": "bunx drizzle-kit generate",
88
"db:migrate": "bunx drizzle-kit migrate",

apps/mobile/env.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export const SERVER_URL = "https://dorf-api-staging.abdelilah4dev.workers.dev";
1+
export const SERVER_URL = "http://192.168.1.115:3003";
22
// export const SERVER_URL = import.meta.env.VITE_SERVER_URL;

apps/mobile/src/components/top-navigation.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useTauriApis } from "../context";
44
import { useNavigate, useRouter } from "@tanstack/react-router";
55
import type { SelectUser } from "@dorf/api/src/db/schema";
66
import { useQueryClient } from "@tanstack/react-query";
7+
import { authClient } from "../lib/auth-client";
78

89
export function TopNavigation({ user }: { user?: SelectUser }) {
910
const { store } = useTauriApis();
@@ -14,6 +15,7 @@ export function TopNavigation({ user }: { user?: SelectUser }) {
1415
const handleLogOut = async () => {
1516
await Promise.all([store?.delete("token"), store?.delete("user")]);
1617
await queryClient.invalidateQueries({ queryKey: ["user"] });
18+
await authClient.signOut();
1719
navigate({ to: "/onboarding" });
1820
};
1921

0 commit comments

Comments
 (0)