forked from fcitx5-android/fcitx5-android
-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (116 loc) · 4.13 KB
/
Manually.yml
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
name: Manually
on:
workflow_dispatch
jobs:
build_pull_request:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
#- macos-13
#- windows-2022
abi:
#- armeabi-v7a
- arm64-v8a
#- x86
#- x86_64
env:
BUILD_ABI: ${{ matrix.abi }}
steps:
- name: Fetch source code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Regenerate symlinks pointing to submodule (Windows)
if: ${{ matrix.os == 'windows-2022' }}
run: |
Remove-Item -Recurse app/src/main/assets/usr/share
git checkout -- *
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- name: Setup Android environment
uses: android-actions/setup-android@v3
- name: Install Android NDK
run: |
sdkmanager --install "cmake;3.22.1"
- name: Install system dependencies (Ubuntu)
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt update
sudo apt install extra-cmake-modules gettext
- name: Install system dependencies (macOS)
if: ${{ matrix.os == 'macos-13' }}
run: |
brew install extra-cmake-modules
- name: Install system dependencies (Windows)
if: ${{ matrix.os == 'windows-2022' }}
run: |
C:/msys64/usr/bin/pacman -S --noconfirm mingw-w64-ucrt-x86_64-gettext mingw-w64-ucrt-x86_64-extra-cmake-modules
Add-Content $env:GITHUB_PATH "C:/msys64/ucrt64/bin"
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
- name: Build release APK
run: |
./gradlew :app:assembleRelease
./gradlew :assembleReleasePlugins
- name: Sign app
uses: kevin-david/[email protected]
#uses: rpavlik/sign-android-release@master
id: sign_app
with:
releaseDirectory: app/build/outputs/apk/release/
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
alias: ${{ secrets.KEY_ALIAS }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
zipAlign: true
env:
BUILD_TOOLS_VERSION: "33.0.2"
- name: Upload app
uses: actions/upload-artifact@v4
with:
name: app-${{ matrix.os }}-${{ matrix.abi }}
path: app/build/outputs/apk/release/
- name: Pack plugins
shell: bash
run: |
mkdir plugins-to-upload
find plugin/*/build/outputs/apk/release -type f -print0 | while IFS= read -r -d '' source_file; do
# 获取第二级目录名作为前缀
prefix=$(basename "$(dirname "$(dirname "$(dirname "$(dirname "$(dirname "$source_file")")")")")")
# 获取文件名
filename=$(basename "$source_file")
# 构建目标文件路径,加上前缀
target_file="plugins-to-upload/$prefix"_"$filename"
mv "$source_file" "$target_file"
done
- name: Sign plugins
uses: kevin-david/[email protected]
#uses: rpavlik/sign-android-release@master
id: sign_plugins
with:
releaseDirectory: plugins-to-upload
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
alias: ${{ secrets.KEY_ALIAS }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
zipAlign: true
env:
BUILD_TOOLS_VERSION: "33.0.2"
- name: Upload plugins
uses: actions/upload-artifact@v4
with:
name: plugins-${{ matrix.os }}-${{ matrix.abi }}
path: plugins-to-upload
- name: Upload APKs
uses: actions/upload-artifact@v4
with:
path: |
app/build/outputs/apk/release/org.fcitx.fcitx5.android*-signed.apk
plugins-to-upload/rime*-signed.apk
plugins-to-upload/clipboard-filter*-signed.apk