Commit Graph

50 Commits

Author SHA1 Message Date
lan
94a202506b ci(build): prevent gradle.properties corruption and improve key validation
All checks were successful
Frontend CI / ota (ios) (push) Successful in 1m35s
Frontend CI / ota (android) (push) Successful in 2m27s
Frontend CI / build-and-push-web (push) Successful in 6m24s
Frontend CI / build-android-apk (push) Successful in 38m59s
Add newline prepending before appending properties to prevent concatenation with the last line of gradle.properties if it lacks a trailing newline. Replace single key check with a loop that validates all signing keys are correctly placed at column 0.
2026-06-18 18:13:22 +08:00
lafay
c1f8acd4fc fix(ci): use explicit echo blocks instead of heredocs to prevent leading whitespace in gradle.properties
Some checks failed
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-android-apk (push) Successful in 45m59s
The heredoc approach (`cat >> file << EOF`) was introducing leading whitespace to each line,
causing Gradle to treat whitespace as part of property keys. This made hasProperty() return
false for signingConfig values, breaking release builds. The fix uses explicit echo blocks
that write column-0 strings without indentation artifacts.
2026-06-18 15:37:56 +08:00
lafay
1018cd7ea2 ci(build): add expo.inlineModules.watchedDirectories to fix ExpoAutolinkingPlugin
All checks were successful
Frontend CI / ota (ios) (push) Successful in 2m5s
Frontend CI / ota (android) (push) Successful in 2m12s
Frontend CI / build-and-push-web (push) Successful in 3m55s
Frontend CI / build-android-apk (push) Successful in 43m31s
The ExpoAutolinkingPlugin requires expo.inlineModules.watchedDirectories to be set.
Without it, Gradle calls `node ... --watched-directories-serialized ''` and
node JSON.parse('') throws SyntaxError, exiting with code 1.
2026-06-18 14:42:38 +08:00
lafay
ce0cb75248 ci: add missing gradle properties and enable build logging
Some checks failed
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-android-apk (push) Successful in 12m56s
Restore critical build properties that expo prebuild does not generate:
- ndkVersion for native compilation
- Gradle HTTP connection and socket timeouts for reliability
- Capture full build output with stacktrace for CI debugging
2026-06-18 14:18:36 +08:00
lafay
9cba25da00 refactor(push): unify file modification approach and improve dependency resolution
Some checks failed
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 12m49s
Simplify Honor push plugin to use withDangerousMod consistently for all file
modifications, replacing the withSettingsGradle approach that silently drops
writes in Expo SDK 56+ multi-vendor plugin scenarios.

Enhance Huawei push plugin to create missing dependencyResolutionManagement
block instead of only appending to existing ones, ensuring CI build paths work
reliably when Gradle's dependencyResolutionManagement takes precedence.

Remove inline settings.gradle/build.gradle generation from CI workflow,
relying on expo prebuild for Gradle file generation.
2026-06-18 13:53:36 +08:00
lafay
96e8de18bf feat(push): integrate Honor and Xiaomi push plugins with related updates 2026-06-18 00:03:37 +08:00
lafay
641de98dc1 perf(ci): optimize JVM memory allocation for Android build
Some checks failed
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Successful in 32m56s
- Consolidate gradle properties with kotlin.daemon.jvmargs
- Increase heap and metaspace limits (3g→4g heap, 512m→1g metaspace)
- Add kotlin daemon memory options to gradlew command
- Remove redundant environment variables and CMAKE settings
2026-06-16 12:42:27 +08:00
lafay
33a9c2fad1 perf(android): add taskset CPU affinity for Android release build
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
2026-06-16 12:07:24 +08:00
lafay
2195fe2c2b perf(ci): incrementally tighten resource constraints across CI jobs
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
Further reduce worker counts, JVM heap, Node memory, and CMake parallelism to lower CI costs. These incremental adjustments complement recent optimizations.
2026-06-16 11:44:05 +08:00
lafay
03a735b6ac perf(ci): reduce build memory and parallelism settings
Some checks failed
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 28m56s
Lower memory allocation from 8GB to 4GB and reduce worker counts across
Gradle, Node, and CMake to minimize resource consumption during CI builds.
Remove Gradle caching to simplify workflow configuration.
2026-06-16 11:13:02 +08:00
lafay
c06463f576 perf(ci): reduce build memory and CPU allocations
Some checks failed
Frontend CI / ota (ios) (push) Successful in 1m30s
Frontend CI / ota (android) (push) Successful in 1m49s
Frontend CI / build-and-push-web (push) Successful in 2m47s
Frontend CI / build-android-apk (push) Failing after 14m11s
Scale down memory limits and parallelization settings across CI build pipeline. Reduce heap from 8g to 4g, metaspace from 1g to 512m, worker count from 4 to 2, and CMAKE build parallel level from 8 to 4. Remove Gradle caching and update web export to use explicit NODE_OPTIONS for memory allocation. These optimizations reduce resource usage while maintaining stable builds.
2026-06-16 09:07:56 +08:00
lafay
c46260e4c0 chore(plugins,ci): remove livekit audio switch patch plugin and simplify build config
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Failing after 3m58s
Frontend CI / build-android-apk (push) Failing after 45m17s
Remove the LiveKit audio switch patch plugin as it's no longer needed after the JitPack
repository was restricted to GitHub packages only. Simplify CI by removing npm caching and
Android NDK caching/installation steps. Update privacy policy and terms of service to
reflect JPush SDK naming changes.
2026-06-16 08:38:07 +08:00
lafay
a31225dce2 build(ci): restrict JitPack repository to GitHub packages only
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 18m17s
Add group filtering to JitPack Maven repository configuration to limit
dependency resolution to com.github.* groups, improving build security
and reducing potential resolution of unintended packages.
2026-06-16 00:41:13 +08:00
lafay
b0b868593d feat:修复
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 25m17s
2026-06-16 00:27:58 +08:00
lafay
ed06c10f25 build(ci): remove Jiguang Maven repository from build workflows and Huawei plugin
Some checks failed
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 15m46s
2026-06-16 00:07:50 +08:00
lafay
2ae5999940 build: restructure Gradle plugins placement and remove .npmrc config
Some checks failed
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 10m22s
2026-06-15 23:38:41 +08:00
lafay
1012337e57 build(deps): add Jiguang SDK repositories and CMake job limit plugin
Some checks failed
Frontend CI / ota (android) (push) Failing after 54s
Frontend CI / ota (ios) (push) Failing after 52s
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
Add Jiguang Maven repository (developer.jiguang.cn) to dependency resolution management for JPush SDK integration. Integrate new Expo config plugins for CMake job limiting and JCore patching.

- Add jiguang maven repo to dependencyResolutionManagement and all buildscript repositories
- Create withCmakeJobLimit plugin to set cmake job limits in gradle properties
- Create withJcorePatch plugin for JCore SDK configuration
- Increase CMAKE_BUILD_PARALLEL_LEVEL from 4 to 8 for faster native builds
- Add gradle HTTP timeout settings (30s connection/socket timeout)
- Remove npmmirror registry from npmrc and CI workflows (use default npm registry)
- Downgrade upload-artifact action from v4 to v3 for compatibility
- Remove docker layer caching for frontend-web build
2026-06-15 22:58:48 +08:00
lafay
f3d54a3f4c feat(background): implement user consent mechanism for auto-start functionality
Some checks failed
Frontend CI / ota (android) (push) Has been cancelled
Frontend CI / ota (ios) (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Failing after 7m23s
Add auto-start consent system that requires explicit user permission before enabling background sync services. Users can now choose between silent mode (no auto-start) or background mode (15-minute sync intervals).

- Add consent service with AutoStartMode enum and storage utilities
- Create withRemoveAutoStart Expo plugin to disable Android auto-start defaults
- Integrate consent checks into JPush service, background task manager, and foreground service
- Add auto-start consent UI in notification settings with descriptive dialog
- Update privacy policy with section 8 explaining auto-start scenarios and user controls
- Change default sync mode from BATTERY_SAVER to DISABLED
- Export reinitBackgroundService function for re-initializing after consent changes
- Merge OTA Android and iOS workflows into matrix build
- Add release signing config in withSigning plugin for Android
- Expand .dockerignore with native credential and build artifact exclusions
2026-06-15 20:43:15 +08:00
lan
f79415591d build(android): add google services and update NDK version
Some checks failed
Frontend CI / ota-android (push) Successful in 1m45s
Frontend CI / ota-ios (push) Successful in 1m49s
Frontend CI / build-android-apk (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Configure Firebase/Google Services support for Android and update the CI
build pipeline to use a newer NDK version.

- Add `google-services.json` and configure `googleServicesFile` in `app.json`
- Add `com.google.gms:google-services:4.4.4` classpath to build workflow
- Update Android NDK version from `27.0.12077973` to `27.1.12297006` in CI cache and installation steps
2026-06-04 13:29:02 +08:00
lafay
e7eae716be fix(ci): add Huawei AGConnect plugin to CI Gradle config
Some checks failed
Frontend CI / ota-android (push) Has been cancelled
Frontend CI / ota-ios (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Successful in 45m47s
The CI workflow overwrites build.gradle/settings.gradle with China Maven
mirrors but was missing the Huawei AGConnect classpath dependency and
Maven repo, causing "Plugin with id 'com.huawei.agconnect' not found".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 23:29:33 +08:00
lafay
4308077232 ci(android): add Android NDK caching and installation to build workflow 2026-05-14 01:25:54 +08:00
lan
f5f9c3a619 ci: add iOS OTA publishing and refactor gesture handling
Some checks failed
Frontend CI / ota-android (push) Successful in 1m10s
Frontend CI / ota-ios (push) Successful in 1m8s
Frontend CI / build-and-push-web (push) Successful in 6m1s
Frontend CI / build-android-apk (push) Has been cancelled
- Add `ota-ios` job to GitHub Actions workflow to support iOS OTA updates
- Refactor `ScheduleScreen` to use `GestureDetector` and `Gesture` from `react-native-gesture-handler` instead of `PanGestureHandler`
- Update `TradeCard` styles and layout spacing in `HomeScreen` and `MarketView`
- Refactor `MarketView` to use updated responsive spacing values
2026-05-05 17:46:31 +08:00
lafay
88d9ffe9da chore(build): remove deprecated always-auth npm config from CI workflow
Some checks failed
Frontend CI / ota-android (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
Frontend CI / build-and-push-web (push) Failing after 40s
2026-04-27 23:36:16 +08:00
lafay
9745d2209f ci: update npm registry to npmmirror.com in build workflow
Some checks failed
Frontend CI / ota-android (push) Failing after 42s
Frontend CI / build-and-push-web (push) Failing after 55s
Frontend CI / build-android-apk (push) Failing after 1m45s
2026-04-27 23:33:38 +08:00
lafay
2015a1e9dd ci: update docker image name to carrot_bbs/frontend-web in build workflow
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 2m7s
Frontend CI / ota-android (push) Failing after 6m3s
Frontend CI / build-android-apk (push) Has been cancelled
2026-04-27 23:23:17 +08:00
lafay
0e4306c3ac ci: update docker registry path from with_you to carrot_bbs
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 2m33s
Frontend CI / ota-android (push) Successful in 10m37s
Frontend CI / build-android-apk (push) Successful in 43m57s
2026-04-27 13:40:41 +08:00
lafay
e0b43ce60d build(gradle): add foojay toolchain resolver convention plugin
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 14s
Frontend CI / build-android-apk (push) Failing after 12s
Frontend CI / ota-android (push) Failing after 14s
Adds the Gradle Toolchains Foojay Resolver plugin to enable automatic JDK
downloads and toolchain management, allowing the project to specify required
JDK versions without manual installation.
2026-04-27 01:15:20 +08:00
lafay
eb4e1c080d ci(build): add Tencent Gradle mirror and reorder Maven mirrors for China network
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 1m43s
Frontend CI / ota-android (push) Successful in 10m51s
Frontend CI / build-android-apk (push) Successful in 1h7m45s
- Add new step to switch Gradle distribution URL to Tencent mirror (mirrors.cloud.tencent.com/gradle/)
- Reorder Maven repository configuration to prioritize Aliyun mirrors before google() and mavenCentral()
- Add gradle-plugin to Aliyun mirror list for improved China network compatibility
2026-04-22 20:46:59 +08:00
lafay
dcae47218f build(metro): add web shims for native React Native API compatibility
Some checks failed
Frontend CI / ota-android (push) Failing after 11s
Frontend CI / build-and-push-web (push) Failing after 1m14s
Frontend CI / build-android-apk (push) Has been cancelled
Add Metro configuration to resolve native-only React Native APIs with web-compatible shims. This enables packages like react-native-pager-view to work on the web platform by providing shim implementations for codegenNativeComponent, codegenNativeCommands, and CodegenTypes that are unavailable in react-native-web.

Also simplify Android signing configuration in CI by using standard Gradle property names (MYAPP_UPLOAD_*) and remove the build.gradle patching step.
2026-04-22 20:17:38 +08:00
lafay
437dab3b6e Rebrand the entire application from "胡萝卜社区" (Carrot BBS) to "威友" (WithYou), including:
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 2m51s
Frontend CI / ota-android (push) Successful in 11m16s
Frontend CI / build-android-apk (push) Failing after 12m54s
- Update app name, package name (skin.carrot.bbs → cn.qczlit.withyou), and bundle identifier
- Update API endpoints (bbs.littlelan.cn → withyou.littlelan.cn)
- Update URL scheme (carrotbbs:// → withyou://)
- Rename database from carrot_bbs to with_you
- Update CI/CD pipeline image names and artifact naming
- Add Android signing configuration for release builds
- Update all UI text and comments throughout the codebase
- Refactor registerStore to use in-memory state instead of AsyncStorage persistence
- Improve WebRTC track handling and call stream management
- Add metro platform resolution for native platform support

BREAKING app package, database, and URLs are no longer valid
2026-04-22 16:54:51 +08:00
lafay
c903990aaf feat(APKUpdate): implement APK update check and enhance build workflow
Some checks failed
Frontend CI / ota-android (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
- Added `expo-intent-launcher` dependency to support APK launching functionality.
- Introduced `APKUpdateBootstrap` component to check for APK updates during app initialization.
- Enhanced build workflow in `build.yml` to resolve runtime version and upload APK to the updates server.
- Updated `HomeScreen` and `TabsLayout` to manage tab visibility and scroll behavior based on user interactions.
- Refactored message bubble styles for improved UI consistency and user experience.
2026-03-26 03:41:43 +08:00
lafay
26ae288470 refactor: standardize pagination response structure and enhance cursor handling
All checks were successful
Frontend CI / build-and-push-web (push) Successful in 5m8s
Frontend CI / ota-android (push) Successful in 11m22s
Frontend CI / build-android-apk (push) Successful in 45m46s
- Update various services and hooks to replace 'items' with 'list' for consistency in pagination responses.
- Modify PostRepository, commentService, groupService, messageService, and postService to align with the new response structure.
- Enhance cursor pagination logic in hooks and components to ensure proper handling of pagination states.
- Refactor HomeScreen, PostDetailScreen, SearchScreen, and other components to utilize the updated pagination structure.
2026-03-23 03:58:26 +08:00
lafay
25071d2303 ci: 添加Gradle缓存、node_modules缓存和Docker构建缓存
Some checks failed
Frontend CI / ota-android (push) Successful in 14m5s
Frontend CI / build-android-apk (push) Successful in 51m52s
Frontend CI / build-and-push-web (push) Failing after 9m50s
2026-03-21 14:15:41 +08:00
lafay
7d9670e973 ci: use android-builder runner for APK build
Some checks failed
Frontend CI / ota-android (push) Successful in 13m14s
Frontend CI / build-and-push-web (push) Failing after 35m39s
Frontend CI / build-android-apk (push) Successful in 1h3m35s
2026-03-19 10:57:24 +08:00
lafay
b11e6548d5 ci(build): optimize Android build performance with parallel execution and increased memory limits
Some checks failed
Frontend CI / ota-android (push) Failing after 7m8s
Frontend CI / build-android-apk (push) Successful in 1h11m44s
Frontend CI / build-and-push-web (push) Successful in 19m12s
Increase Gradle heap size from 2GB to 8GB, enable parallel builds with 4 workers, and update JVM options for faster CI pipeline execution. This reduces build times by utilizing more available resources in the build container.
2026-03-18 15:46:50 +08:00
lafay
01796ac695 fix(ci): optimize memory settings for CI stability
Some checks failed
Frontend CI / ota-android (push) Successful in 11m31s
Frontend CI / build-android-apk (push) Failing after 42m46s
Frontend CI / build-and-push-web (push) Failing after 1m47s
Reduce JVM heap and metaspace allocation to fit runner limits.
Add NODE_OPTIONS and restrict NDK/CMake parallelism to prevent
out-of-memory errors during build.
2026-03-18 01:54:14 +08:00
lan
6c032cefbf fix(ci): 移除 dependencyResolutionManagement 让项目使用 build.gradle 仓库配置
Some checks failed
Frontend CI / ota-android (push) Successful in 11m5s
Frontend CI / build-android-apk (push) Failing after 43m29s
Frontend CI / build-and-push-web (push) Failing after 1m37s
2026-03-18 00:51:58 +08:00
lan
9fb78bb5ee fix(ci): 修复 Gradle 配置,使用完整的 settings.gradle 和 build.gradle 文件替换
Some checks failed
Frontend CI / ota-android (push) Successful in 11m19s
Frontend CI / build-android-apk (push) Failing after 19m34s
Frontend CI / build-and-push-web (push) Failing after 1m12s
2026-03-18 00:19:22 +08:00
lan
8a95dbcb59 fix(ci): 修复 YAML 格式问题,使用 heredoc 正确配置 Maven 镜像
Some checks failed
Frontend CI / ota-android (push) Successful in 12m14s
Frontend CI / build-android-apk (push) Failing after 7m26s
Frontend CI / build-and-push-web (push) Failing after 1m39s
2026-03-17 23:48:57 +08:00
lan
6ba24c59aa fix(ci): 添加阿里云 Maven 镜像解决网络不可达问题 2026-03-17 23:44:54 +08:00
lan
544a7ea156 fix(ci): 只编译 arm64 APK 并修复构建问题
Some checks failed
Frontend CI / ota-android (push) Successful in 11m18s
Frontend CI / build-android-apk (push) Failing after 7m49s
Frontend CI / build-and-push-web (push) Successful in 5m19s
2026-03-17 23:18:07 +08:00
lan
530f54a4a3 fix(ci): 只编译 arm64 APK 并修复 codegen 构建问题 2026-03-17 23:15:36 +08:00
lafay
3d1d7857df ci: 增加Metaspace到1g,移除clean任务减少内存消耗
Some checks failed
Frontend CI / ota-android (push) Successful in 12m36s
Frontend CI / build-android-apk (push) Failing after 23m12s
Frontend CI / build-and-push-web (push) Failing after 1m2s
2026-03-17 20:03:57 +08:00
lafay
4f4c190c3a ci: 修复hermesEnabled属性未定义问题
Some checks failed
Frontend CI / ota-android (push) Successful in 12m39s
Frontend CI / build-android-apk (push) Failing after 19m35s
Frontend CI / build-and-push-web (push) Successful in 3m37s
2026-03-17 19:25:56 +08:00
lafay
b4e4f33e3b ci: 进一步限制Gradle内存使用,设置workers.max=1,添加NODE_ENV
Some checks failed
Frontend CI / ota-android (push) Successful in 10m50s
Frontend CI / build-android-apk (push) Failing after 12m5s
Frontend CI / build-and-push-web (push) Successful in 2m46s
2026-03-17 16:57:16 +08:00
lafay
b010aefbe2 ci: 修复Gradle构建崩溃问题,禁用并行和守护进程
Some checks failed
Frontend CI / ota-android (push) Successful in 11m2s
Frontend CI / build-android-apk (push) Failing after 18m20s
Frontend CI / build-and-push-web (push) Has been cancelled
2026-03-17 16:25:21 +08:00
lan
4ec56de988 ci: 修复Android APK构建前置步骤
Some checks failed
Frontend CI / ota-android (push) Successful in 10m55s
Frontend CI / build-android-apk (push) Failing after 22m57s
Frontend CI / build-and-push-web (push) Successful in 3m2s
在 CI 的 APK 构建任务中增加 expo prebuild 以生成 android 工程,避免仓库未包含原生目录时构建失败。

Made-with: Cursor
2026-03-17 15:43:46 +08:00
lan
f328b2fd31 ci: 修复前端镜像仓库登录凭据
将前端 workflow 的容器仓库登录凭据改为与后端一致的 GIT_USERNAME/GIT_TOKEN,避免登录步骤缺少用户名或密码导致失败。

Made-with: Cursor
2026-03-17 15:26:12 +08:00
lan
f7fd849cb1 ci: 优化Android APK构建环境
Some checks failed
Frontend CI / ota-android (push) Failing after 6m30s
Frontend CI / build-android-apk (push) Failing after 9m13s
Frontend CI / build-and-push-web (push) Failing after 14s
将 APK 构建任务切换到预装 Android SDK 的容器镜像,移除在线安装 SDK 步骤以提升稳定性并避免许可证管道失败。

Made-with: Cursor
2026-03-17 15:24:10 +08:00
lan
ef955db99f ci: 增加前端构建发布流水线
Some checks failed
Frontend CI / ota-android (push) Failing after 9m24s
Frontend CI / build-android-apk (push) Failing after 7m12s
Frontend CI / build-and-push-web (push) Failing after 23s
新增 Gitea CI,覆盖 Android OTA 发布与校验、Android Release APK 打包,以及 Web Docker 镜像构建推送。

Made-with: Cursor
2026-03-17 15:04:12 +08:00