Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
fbbd73c
ci: add ci.yaml with personal prebuilt and fcitx5-rime
fxliang Jun 23, 2025
dd71802
feat: load Popup from json config config/PopupPreset.json
fxliang May 12, 2025
c77ca23
feat: layout of TextKeyboard by config/TextKeyboardLayout.json
fxliang Jun 20, 2025
43340bc
feat: font face of main text(AutoScaleTextView) and candiates
fxliang Jun 26, 2025
cdf749f
refactor: cached all typefaces defined in json on startup;
fxliang Jun 26, 2025
a24b855
refactor: make fontset.json auto reload when file modified and reacti…
fxliang Jun 26, 2025
8e743a8
feat: add popup_key_font for popup window
fxliang Jun 26, 2025
10f5eb4
feat: add preedit_font key for fontset.json
fxliang Jun 27, 2025
4b3a968
refactor: more kotlin style in update cachedFontTypefaceMap
fxliang Jun 27, 2025
35a1e4e
refactor: TextKeyboardLayout with map by ime.uniqueName, im.subMode, …
fxliang Jun 27, 2025
96d7a7c
chore: translation for Emoji skin tone selection and preference
fxliang Jun 30, 2025
7063622
fix: NullPointerException when TextKeyboard init, lazy view might be …
fxliang Jul 1, 2025
7f31ce7
refactor: keep displayText only to avoid crash.
fxliang Jul 20, 2025
899a41b
Merge remote-tracking branch 'liang/mod2'
expoli Aug 11, 2025
7251801
feat: Add Ctrl+key combinations to popup keyboard
expoli Aug 13, 2025
395fbd9
fix: 使用对应的 tag 进行 release,防止覆盖
expoli Aug 13, 2025
3037bfe
feat: 添加字体配置管理功能,支持用户选择和配置不同组件的字体
expoli Aug 21, 2025
85433ea
feat: 添加日志记录功能以跟踪字体配置更新
expoli Aug 21, 2025
fc687c6
feat: 添加字体更改监听器以支持动态更新输入视图
expoli Aug 21, 2025
797c6d0
feat: 更新 CI 配置以支持所有标签触发构建并生成唯一的发布标签和详细的发布说明
expoli Aug 21, 2025
0bd1fea
fix: Handle Enter key press from physical keyboard
expoli Aug 23, 2025
54750e8
Merge branch 'master' into dev
expoli Oct 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 194 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
name: Commit CI

on:
workflow_dispatch:
push:
branches:
- '*'
tags:
- '*' # 允许所有标签触发构建
paths:
- '**/**'
- '!*.md'
- '!.gitignore'

jobs:
build_commit:
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: Prepare personal build sources
run: |
./prepare_personal_build.sh

- name: Setup Gradle
uses: gradle/gradle-build-action@v3

- name: Build Release APK
run: |
./gradlew :app:assembleRelease
./gradlew :assembleReleasePlugins

# move plugin apks to app/build/outputs/apk/release
- name: Move plugin APKs
shell: bash
run: |
for i in $(ls plugin)
do
if [ -d "plugin/${i}" ]
then
mv "plugin/${i}/build/outputs/apk/release"/*.apk "app/build/outputs/apk/release/"
fi
done

- name: Sign all App
uses: kevin-david/zipalign-sign-android-release@v1.1.1
id: sign_apk
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: "31.0.0"

- name: Delete unsigned APKs
shell: bash
run: |
rm app/build/outputs/apk/release/*unsigned.apk
pushd app/build/outputs/apk/release
for file in *unsigned-*; do
new_name="${file/unsigned-/}"
mv -- "$file" "$new_name"
done
popd

- name: Upload app with plugins
uses: actions/upload-artifact@v4
with:
name: app-${{ matrix.os }}-${{ matrix.abi }}-with-plugins
path: app/build/outputs/apk/release/*.apk

# create nightly release
- name: Generate unique release tag
id: generate_tag
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
# 如果是 tag 触发,使用 tag 名称 + 时间戳确保唯一性
RELEASE_TAG="${{ github.ref_name }}-$(date +'%Y%m%d-%H%M%S')"
RELEASE_TITLE="Release ${{ github.ref_name }} ($(date +'%Y-%m-%d %H:%M:%S'))"
IS_PRERELEASE="false"
else
# 如果是分支触发,创建 nightly 构建
RELEASE_TAG="nightly-${{ github.ref_name }}-$(date +'%Y%m%d-%H%M%S')"
RELEASE_TITLE="Nightly Build - ${{ github.ref_name }} ($(date +'%Y-%m-%d %H:%M:%S'))"
IS_PRERELEASE="true"
fi
echo "release_tag=$RELEASE_TAG" >> $GITHUB_OUTPUT
echo "release_title=$RELEASE_TITLE" >> $GITHUB_OUTPUT
echo "is_prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT

- name: Generate release notes
id: generate_notes
run: |
# 获取最近的 commits 作为 release notes
if [[ "${{ github.ref_type }}" == "tag" ]]; then
# 对于 tag,获取从上一个 tag 到当前 tag 的变更
PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
if [[ -n "$PREVIOUS_TAG" ]]; then
RELEASE_NOTES=$(git log --pretty=format:"- %s (%h)" $PREVIOUS_TAG..HEAD)
else
RELEASE_NOTES=$(git log --pretty=format:"- %s (%h)" --max-count=10)
fi
else
# 对于分支,获取最近 10 个 commits
RELEASE_NOTES=$(git log --pretty=format:"- %s (%h)" --max-count=10)
fi

# 添加构建信息
BUILD_INFO="

## 构建信息
- 构建时间: $(date +'%Y-%m-%d %H:%M:%S UTC')
- 分支/标签: ${{ github.ref_name }}
- 提交: ${{ github.sha }}
- 构建系统: ${{ matrix.os }}
- 架构: ${{ matrix.abi }}
"

FULL_NOTES="## 更改日志
$RELEASE_NOTES
$BUILD_INFO"

# 保存到文件,处理多行内容
echo "$FULL_NOTES" > release_notes.md
echo "Generated release notes:"
cat release_notes.md

- name: Create Release
uses: 'marvinpinto/action-automatic-releases@latest'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: ${{ steps.generate_tag.outputs.release_tag }}
prerelease: ${{ steps.generate_tag.outputs.is_prerelease }}
title: ${{ steps.generate_tag.outputs.release_title }}
body_path: release_notes.md
files: |
app/build/outputs/apk/release/*.apk

Loading
Loading