forked from TheStableFoundation/notwallet
-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (115 loc) · 4.81 KB
/
Copy pathdeploy-android.yaml
File metadata and controls
135 lines (115 loc) · 4.81 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: "Build Android for Release"
on:
workflow_dispatch:
jobs:
publish-android:
permissions:
contents: write
id-token: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Install Android targets
run: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
- name: Install cargo tauri
run: |
cargo install tauri-cli --version "^2.0.0" --locked
- name: Tauri Info
run: cargo tauri info
- name: Install frontend dependencies
uses: pnpm/action-setup@v4
with:
version: 10
run_install: true
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- name: Cache NDK
id: cache-ndk
uses: actions/cache@v4
with:
# Path where NDK version 29.0.13113456 is expected to be installed by setup-android
path: /usr/local/lib/android/sdk/ndk/29.0.13113456
key: ndk-${{ runner.os }}-29.0.13113456
- name: Setup Android SDK and NDK
uses: android-actions/setup-android@v3
with:
cmdline-tools-version: 12266719 # v16
- name: Install NDK
run: sdkmanager "ndk;29.0.13113456"
- name: Install CMake
run: sdkmanager "cmake;4.0.2"
- name: Set main environment variables
run: |
echo "NDK_HOME=$ANDROID_HOME/ndk/29.0.13113456" >> $GITHUB_ENV
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/29.0.13113456" >> $GITHUB_ENV
echo "ANDROID_NDK=$ANDROID_HOME/ndk/29.0.13113456" >> $GITHUB_ENV
echo "CMAKE=$ANDROID_HOME/cmake/4.0.2/bin/cmake" >> $GITHUB_ENV
echo "TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64" >> $GITHUB_ENV
echo "TARGET=aarch64-linux-android" >> $GITHUB_ENV
echo "API=34" >> $GITHUB_ENV
- name: Set NDK variables
run: |
echo "AR=$TOOLCHAIN/bin/llvm-ar" >> $GITHUB_ENV
echo "CC=$TOOLCHAIN/bin/$TARGET$API-clang" >> $GITHUB_ENV
echo "AS=$CC" >> $GITHUB_ENV
echo "CXX=$TOOLCHAIN/bin/$TARGET$API-clang++" >> $GITHUB_ENV
echo "LD=$TOOLCHAIN/bin/ld" >> $GITHUB_ENV
echo "RANLIB=$TOOLCHAIN/bin/llvm-ranlib" >> $GITHUB_ENV
echo "STRIP=$TOOLCHAIN/bin/llvm-strip" >> $GITHUB_ENV
echo "PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_ENV
echo "PATH=$PATH:$TOOLCHAIN/bin" >> $GITHUB_ENV
- name: Initialize Android project
run: cargo tauri android init -c src-tauri/tauri.prod.conf.json
- name: Copy Override Gen
run: |
rm src-tauri/gen/android/build.gradle.kts
rm src-tauri/gen/android/app/build.gradle.kts
rm src-tauri/gen/android/app/src/main/AndroidManifest.xml
yes | cp -rf override-gen/gen/android/build.gradle.kts src-tauri/gen/android/build.gradle.kts
yes | cp -rf override-gen/gen/android/app/build.gradle.kts src-tauri/gen/android/app/build.gradle.kts
yes | cp -rf override-gen/gen/android/app/src/main/AndroidManifest.xml src-tauri/gen/android/app/src/main/AndroidManifest.xml
- name: Install OpenSSL development packages
run: |
sudo apt-get update
sudo apt-get install -y openssl libssl-dev pkg-config
# Info
openssl version -d
echo "OPENSSL_DIR=/usr/lib/ssl" >> $GITHUB_ENV
- name: Decrypt Android keystore
run: |
./scripts/decrypt-keystore.sh \
--encrypted ./secrets/upload-keystore.jks.gpg \
--output ./upload-keystore.jks \
--password ${{ secrets.KEYSTORE_ENCRYPTION_PASSWORD }}
- name: Create keystore.properties
run: |
cat > src-tauri/gen/android/keystore.properties << EOF
password=${{ secrets.KEYSTORE_PASSWORD }}
keyAlias=upload
storeFile=${{ github.workspace }}/upload-keystore.jks
#EOF
- name: Publish Android
env:
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
ANDROID_KEY_ALIAS_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
run: |
pnpm publish-android
- name: Upload Android artifact
uses: actions/upload-artifact@v4
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: app-bundle
# A file, directory or wildcard pattern that describes what to upload
# Required.
#
path: src-tauri/gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab