mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 01:00:18 +02:00
- Anonymous PostHog analytics (ui/frame_telemetry.py): usage on by default after a first-run notice; compatibility results and error details opt-in, offered together by the notice's "Share more to help fix problems" button. Random id, no person profiles or GeoIP, scrubbed text, an offline outbox, and "Show what's been sent" in the new Privacy panel. Inert without a project key, from a source checkout, or with DO_NOT_TRACK=1. - APK installs now record install_failed when the APK itself won't install, and offer a 20-second test after installing. Opted-in reports reach the shared database through PostHog and `frame_compat_db.py sync`. - The desktop app updates itself from published releases (app/updater.js): update.json from releases/latest/download, SHA-256 checked, no downgrades; macOS bundle swap, Windows NSIS, Linux AppImage, otherwise the release page. scripts/publish-release.sh publishes a tested draft with its manifest. - Report a problem (header button, Privacy panel, Help menu) files a GitHub issue through the website's feedback API, with a previewed, scrubbed diagnostics snapshot; activity and logs only when asked for. Reviewed by GPT-6 Astra (xhigh, read-only) three times; all findings fixed. Docs: docs/privacy.md, docs/releasing.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
name: checks
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
checks:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.9" # the oldest python3 the Mac app may pick up (Xcode CLT)
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "24"
|
|
- name: Install zsh
|
|
run: sudo apt-get update -qq && sudo apt-get install -y -qq zsh
|
|
- name: Script syntax
|
|
run: |
|
|
for f in scripts/*.sh frame/*/*.sh; do
|
|
case "$(head -n 1 "$f")" in
|
|
*zsh*) zsh -n "$f" ;;
|
|
*) bash -n "$f" ;;
|
|
esac
|
|
done
|
|
- name: Python compiles
|
|
run: |
|
|
python -m py_compile ui/*.py apk-catalog/*.py frame/android/*.py
|
|
# Valve's devkit-utils (vendored; run by the Frame's python3). Most have no .py suffix.
|
|
python -m py_compile $(find frame/devkit-utils -type f ! -name '*.*' ! -name LICENSE) frame/devkit-utils/devkit_utils/*.py
|
|
- name: Server tests
|
|
run: python -m unittest discover -s tests -v
|
|
- name: App syntax
|
|
run: node --check app/main.js && node --check app/build/make-icon.js && node --check app/build/fetch-deps.js && node --check app/preload.js && node --check app/install-link.js && node --check app/updater.js
|
|
- name: Updater tests
|
|
run: node --test app/test/updater.test.js
|
|
- name: Website
|
|
run: node --test site/test/*.test.mjs && node --check site/public/js/site.js && node --check site/public/js/feedback.js
|
|
|
|
# The server runs on each desktop OS the app ships for, on the Python version
|
|
# the app bundles (app/build/fetch-deps.js) and, on Ubuntu, a newer one.
|
|
server-tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: windows-latest
|
|
python: "3.12"
|
|
- os: macos-latest
|
|
python: "3.12"
|
|
- os: ubuntu-latest
|
|
python: "3.13"
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
- name: Server tests
|
|
run: python -m unittest discover -s tests -v
|