-
-
Notifications
You must be signed in to change notification settings - Fork 45
155 lines (131 loc) · 5.44 KB
/
build-android-app.yml
File metadata and controls
155 lines (131 loc) · 5.44 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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Build Android Pinepods App (Legacy Tauri - Deprecated)
on:
# This workflow is deprecated in favor of build-android-flutter.yml
# release:
# types: [published]
workflow_dispatch:
inputs:
version:
description: "Manual override version tag (optional)"
required: false
jobs:
build:
name: Build Android Release
runs-on: ubuntu-latest
steps:
- name: Set Image Tag (Unix)
run: echo "IMAGE_TAG=${{ github.event.release.tag_name || github.event.inputs.version || 'latest' }}" >> $GITHUB_ENV
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r27b
add-to-path: false
- uses: hecrj/setup-rust-action@v2
with:
rust-version: 1.86
targets: wasm32-unknown-unknown
- name: Install cargo-binstall
uses: cargo-bins/cargo-binstall@main
- name: Depends install
if: ${{ env.DEPENDS_SETUP == 'true' }}
run: |
sudo apt update
sudo apt install -qy libgtk-3-dev
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: wasm-addition
run: |
rustup target add wasm32-unknown-unknown
rustup target add aarch64-linux-android
- name: Install Trunk
run: |
cargo binstall trunk -y
- name: Install Tauri
run: |
cargo install tauri-cli@2.0.0-rc.16 --locked
- name: Update Tauri version (UNIX)
run: |
cd web/src-tauri
# Use different sed syntax for macOS
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i '' "s/\"version\": \".*\"/\"version\": \"${IMAGE_TAG}\"/" tauri.conf.json
else
sed -i "s/\"version\": \".*\"/\"version\": \"${IMAGE_TAG}\"/" tauri.conf.json
fi
cat tauri.conf.json
shell: bash
- name: setup Android signing
run: |
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > web/src-tauri/gen/android/keystore.properties
echo "password=${{ secrets.ANDROID_KEY_PW }}" >> web/src-tauri/gen/android/keystore.properties
base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks
echo "storeFile=$RUNNER_TEMP/keystore.jks" >> web/src-tauri/gen/android/keystore.properties
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: setup Android signing
run: |
cd web/src-tauri/gen/android
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties
echo "password=${{ secrets.ANDROID_KEY_PW }}" >> keystore.properties
base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks
echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties
- name: Build | Compile (UNIX)
run: |
export ANDROID_HOME=$HOME/.android/sdk
export NDK_HOME=$NDK_JOB_HOME
export RUSTFLAGS="--cfg=web_sys_unstable_apis" # Add this line
cd web/src-tauri
cargo tauri icon icons/Square512x512.png
cat tauri.conf.json
cargo tauri android init
cargo tauri android build --apk
cargo tauri android build --aab
shell: bash
env:
NDK_JOB_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
- name: Archive build 1 (apk)
uses: actions/upload-artifact@v4
with:
name: apk-build
path: ./web/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk
- name: Archive build 2 (aab)
uses: actions/upload-artifact@v4
with:
name: aab-build
path: ./web/src-tauri/gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
# - name: Archive build 2 (aab)
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.os }}-build
# path: ./web/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk
# if: ${{ matrix.os == 'ubuntu-latest' }}
# - name: Archive build 2 (Ubuntu)
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.os }}-build
# path: ./web/src-tauri/target/release/bundle/appimage/${{ env.ARTIFACT_NAME2 }}
# if: ${{ matrix.os == 'ubuntu-latest' }}
# - name: Archive build 3 (Ubuntu)
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.os }}-build
# path: ./web/src-tauri/target/release/bundle/rpm/${{ env.ARTIFACT_NAME3 }}
# if: ${{ matrix.os == 'ubuntu-latest' }}
# - name: Upload release asset (Ubuntu - DEB)
# if: github.event_name == 'release' && matrix.os == 'ubuntu-latest'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: ./web/src-tauri/target/release/bundle/deb/${{ env.ARTIFACT_NAME1 }}
# asset_name: ${{ env.ARTIFACT_NAME1 }}
# asset_content_type: application/vnd.debian.binary-package