From abcdb214f21ab5d67ef830c4e708be635c92eeb0 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Thu, 8 Oct 2026 15:55:38 +0800 Subject: [PATCH] [ci] remove tests from build and release workflows --- .github/workflows/build-android.yml | 29 ++++------------ .github/workflows/build-ios.yml | 7 +--- .github/workflows/build.yml | 40 ----------------------- .github/workflows/release-mobile.yml | 3 -- .github/workflows/update-version-json.yml | 3 -- apps/android/README.md | 5 ++- apps/ios/README.md | 7 ++-- 7 files changed, 13 insertions(+), 81 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 450a59d1..577a7c61 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -147,24 +147,18 @@ jobs: - name: Verify shared license catalog run: python3 -B apps/ios/scripts/generate_third_party_licenses.py - - name: Verify native build tool selection - run: python3 -B -m unittest discover -s apps/android/test -p 'build_native_test.py' -v - - - name: Build APKs and run Lint + - name: Build APKs working-directory: apps/android run: | ./gradlew --no-daemon --stacktrace \ - :app:assembleDebug :app:assembleRelease :app:assembleDebugAndroidTest \ - :app:lintDebug :app:lintRelease + :app:assembleDebug :app:assembleRelease - - name: Verify APKs and native protocol + - name: Verify APKs working-directory: apps/android run: | python3 -B test/verify_apk.py app/build/outputs/apk/debug/app-debug.apk python3 -B test/verify_apk.py app/build/outputs/apk/release/app-release-unsigned.apk - python3 -B test/run_native.py "${ANDROID_HOME}/build-tools/36.0.0/apksigner" verify app/build/outputs/apk/debug/app-debug.apk - "${ANDROID_HOME}/build-tools/36.0.0/apksigner" verify app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk - name: Package APKs with the independent Android version id: package @@ -202,19 +196,17 @@ jobs: for variant, source in ( ("unsigned", "release/app-release-unsigned.apk"), ("debug", "debug/app-debug.apk"), - ("debug", "androidTest/debug/app-debug-androidTest.apk"), ): destination = output / variant destination.mkdir(parents=True, exist_ok=True) - suffix = "-test" if "androidTest/" in source else "" - shutil.copyfile(apk_dir / source, destination / f"crossdesk-android-arm64-{variant}-{version}{suffix}.apk") + shutil.copyfile(apk_dir / source, destination / f"crossdesk-android-arm64-{variant}-{version}.apk") with open(os.environ["GITHUB_OUTPUT"], "a") as stream: stream.write(f"version={version}\n") with open(os.environ["GITHUB_STEP_SUMMARY"], "a") as stream: stream.write(f"Android {version}: arm64, API 26+, 16 KB aligned.\n\n" "Debug APK uses an ephemeral CI debug key; it is for testing and may require uninstalling an existing build. " "The Release APK is unsigned and needs your own signing before installation.\n\n" - "Lint, native protocol/frame tests and APK checks passed. Device tests were compiled, not executed.\n") + "Debug and Release APKs built and packaged; APK checks passed.\n") - name: Upload unsigned Release APK uses: actions/upload-artifact@v6 @@ -223,19 +215,10 @@ jobs: path: ${{ runner.temp }}/crossdesk-android/unsigned/*.apk if-no-files-found: error - - name: Upload Debug and device test APKs + - name: Upload Debug APK uses: actions/upload-artifact@v6 with: name: crossdesk-android-arm64-debug-${{ steps.package.outputs.version }} path: ${{ runner.temp }}/crossdesk-android/debug/*.apk if-no-files-found: error retention-days: 14 - - - name: Upload Lint reports - if: ${{ !cancelled() }} - uses: actions/upload-artifact@v6 - with: - name: crossdesk-android-reports - path: apps/android/app/build/reports/ - if-no-files-found: ignore - retention-days: 14 diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index ec5ae8bf..15a06b05 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -163,12 +163,7 @@ jobs: python-version: "3.13" - name: Verify iOS license catalog - run: | - python3 -B -m unittest discover -s apps/ios/tests -p 'third_party_licenses_test.py' -v - python3 -B apps/ios/scripts/generate_third_party_licenses.py - - - name: Verify iOS privacy controls - run: python3 -B -m unittest discover -s apps/ios/tests -p 'privacy_controls_test.py' -v + run: python3 -B apps/ios/scripts/generate_third_party_licenses.py - name: Install xmake uses: xmake-io/github-action-setup-xmake@v1 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d04a34a..bb8dfd7a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -150,17 +150,6 @@ jobs: --cc=gcc-10 --cxx=g++-10 --root -y xmake b -vy --root crossdesk - - name: Verify repository and wire boundaries - env: - XMAKE_GLOBALDIR: /data - run: | - xmake b -vy --root repository_structure_test - xmake b -vy --root crossdesk_wire_test - xmake b -vy --root keyboard_state_wire_test - xmake run --root repository_structure_test - xmake run --root crossdesk_wire_test - xmake run --root keyboard_state_wire_test - - name: Install Linux headless runtime dependencies run: | apt-get update @@ -467,25 +456,6 @@ jobs: xmake f --CROSSDESK_VERSION=${{ env.VERSION_NUM }} --USE_CUDA=true -y xmake b -vy crossdesk - - name: Test installed Windows autostart and unattended host - run: | - xmake b -vy windows_autostart_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake run windows_autostart_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake b -vy windows_unattended_policy_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake b -vy windows_unattended_security_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake run windows_unattended_policy_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake run windows_unattended_security_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake b -vy windows_service_lifetime_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake run windows_service_lifetime_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - - name: Package shell: pwsh run: | @@ -542,13 +512,6 @@ jobs: xmake f --CROSSDESK_VERSION=${{ env.VERSION_NUM }} --USE_CUDA=true --CROSSDESK_PORTABLE=true -y xmake b -vy crossdesk - - name: Test portable Windows autostart - run: | - xmake b -vy windows_autostart_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - xmake run windows_autostart_test - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - - name: Package Portable shell: pwsh run: | @@ -635,9 +598,6 @@ jobs: with: path: artifacts - - name: Verify release manifest updates - run: python3 -B -m unittest discover -s .github/scripts -p 'test_*.py' -v - - name: Extract version number id: version shell: bash diff --git a/.github/workflows/release-mobile.yml b/.github/workflows/release-mobile.yml index 0c57e1ff..df3c1ca7 100644 --- a/.github/workflows/release-mobile.yml +++ b/.github/workflows/release-mobile.yml @@ -101,9 +101,6 @@ jobs: - name: Checkout publishing scripts uses: actions/checkout@v5 - - name: Verify release manifest updates - run: python3 -B -m unittest discover -s .github/scripts -p 'test_*.py' -v - - name: Verify release version shell: bash run: | diff --git a/.github/workflows/update-version-json.yml b/.github/workflows/update-version-json.yml index bac5809b..5be433b8 100644 --- a/.github/workflows/update-version-json.yml +++ b/.github/workflows/update-version-json.yml @@ -30,9 +30,6 @@ jobs: with: ref: ${{ github.event.repository.default_branch }} - - name: Verify release manifest updates - run: python3 -B -m unittest discover -s .github/scripts -p 'test_*.py' -v - - name: Download release information and assets shell: bash run: | diff --git a/apps/android/README.md b/apps/android/README.md index 79df9b8f..a2839b4e 100644 --- a/apps/android/README.md +++ b/apps/android/README.md @@ -98,14 +98,13 @@ git push origin android-v1.6.0-20261002 Gradle 缓存与 Android 原生依赖缓存分别管理;原生缓存按宿主架构、构建脚本及 MiniRTC 配方区分,不复用桌面或 iOS 的配置和目标文件。GitHub 托管 runner 每次启动仍是新环境;第一次运行或缓存失效时需要安装。不同分支和标签可读取默认分支的缓存,因此建议先在默认分支运行一次 `Build Android` 预热,再创建发布标签。 -CI 构建 Debug、Release 和设备测试 APK,执行 Debug / Release Lint、本机 C++ 协议与画面队列测试,并校验 APK 的 arm64 ABI、16 KB ELF / ZIP 对齐、完整许可证及 Debug 签名。Ubuntu x64 构建机上不运行 arm64 设备测试;使用下面的设备验证流程在 arm64 手机或模拟器上执行。Lint 报告在构建失败时也会保留。 +CI 仅构建和打包 Debug、Release APK,并校验 APK 的 arm64 ABI、16 KB ELF / ZIP 对齐、完整许可证及 Debug 签名。单元测试、本机 C++ 协议与画面队列测试、Lint 和设备测试改为按需在本地执行;设备测试使用下面的设备验证流程在 arm64 手机或模拟器上执行。 产物使用 Android 工程自己的 `versionName`,例如 `v1.6.0-20261002`,不跟随桌面版本号。构建日期采用上海时区;带日期的版本标签沿用标签中的日期,与 iOS 一致。Actions 提供: - `crossdesk-android-arm64-<版本>.apk`:已签名 Release APK,独立安卓发布和全平台标签发布收集此 APK,可直接安装。 - `crossdesk-android-arm64-unsigned-<版本>.apk`:构建工作流的中间产物,也可用于自行签名和验证修改后的构建。 -- `crossdesk-android-arm64-debug-<版本>.apk` 和对应的 `-test.apk`:可安装的调试应用和设备测试包,保留 14 天。 -- `crossdesk-android-reports`:Lint 报告,保留 14 天。 +- `crossdesk-android-arm64-debug-<版本>.apk`:可安装的调试应用,保留 14 天。 Debug APK 使用每次运行的临时调试证书,可能无法覆盖手机上已有的其他签名版本;卸载原应用会清除本机连接记录和密码。需要持续覆盖升级时,应使用同一私钥签名 Release APK,并在发布新版本时递增 `app/build.gradle` 中的 `versionCode`。未签名 APK 已完成对齐,可通过 SDK 的 `apksigner sign --ks <自己的密钥库> --out <已签名.apk> <未签名.apk>` 签名,再用 `apksigner verify` 检查。 diff --git a/apps/ios/README.md b/apps/ios/README.md index ec1d7c91..4ad151c6 100644 --- a/apps/ios/README.md +++ b/apps/ios/README.md @@ -105,9 +105,10 @@ or relevant build configuration also trigger it. The main workflow on branch/tag pushes and manual runs, and waits for its result before publishing a version-tag release. -The workflow tests the minimum supported Xmake version (3.0.0) and retains the -pinned Xcode/SDK, dependency cache, license and privacy checks, unsigned arm64 -Release build, and app-bundle verification. It uploads +The workflow builds with the minimum supported Xmake version (3.0.0) and retains +the pinned Xcode/SDK, dependency cache, license catalog validation, unsigned arm64 +Release build, and app-bundle verification. Unit tests run locally as needed. +It uploads `crossdesk-ios-arm64-unsigned-v-.zip`, including the app, source metadata, third-party source catalog, rights notice and any generated dSYM. The version comes from the iOS target; dated repository