name: weblibre_project environment: sdk: '>=3.8.0 <4.0.0' workspace: - apps/weblibre/ - packages/flutter_mozilla_components - packages/flutter_mozilla_components/example - packages/flutter_tor - packages/flutter_tor/example - packages/simple_intent_receiver - packages/simple_intent_receiver/example - packages/locale_resolver - packages/locale_resolver/example - packages/speech_to_text_dialog - packages/speech_to_text_dialog/example - packages/flutter_singbox_proxy - packages/flutter_singbox_proxy/example dev_dependencies: melos: ^7.8.1 melos: name: weblibre_project command: bootstrap: enforceLockfile: true clean: hooks: pre: melos exec -c 1 -- "flutter clean" scripts: upgrade-major-tighten: run: | dart pub upgrade --major-versions --tighten exec: concurrency: 1 validate-dependencies: description: Validates dependcies in the workspace packageFilters: noDependsOn: melos exec: | dart pub global run dependency_validator build-watch: description: Generate and watch files with build_runner in the workspace packageFilters: dependsOn: build_runner exec: | dart run build_runner watch --delete-conflicting-outputs build: description: Generate files with build_runner in the workspace packageFilters: dependsOn: build_runner run: | dart run build_runner build --delete-conflicting-outputs exec: failFast: true concurrency: 1 build-pigeons: description: Running pigeon for files in pigeons directory exec: | echo "Running pigeon for files in pigeons directory:" for file in ./pigeons/*; do if [ -f "\$file" ]; then echo "Processing \$file" flutter pub run pigeon --input "\$file" fi done packageFilters: dirExists: 'pigeons' format: description: Format all Dart files in the workspace exec: dart format . update-assets: description: Download external assets (bangs, bridges, URL lists) run: bash scripts/update-assets.sh build-components: description: Build JS components and generate quotes/sites DBs run: | set -e sh scripts/build-container-proxy.sh sh scripts/build-readability.sh python3 scripts/build_quotes_db.py python3 scripts/build_sites_db.py build-singbox-libbox: description: Build official sing-box Android libbox AAR for flutter_singbox_proxy run: packages/flutter_singbox_proxy/scripts/build-libbox-android.sh build-go-runtime: description: Build combined Android gomobile runtime AAR for proxy plugins run: native/go_mobile_runtime/scripts/build-android.sh build-browser: description: Build stable release APK split per ABI run: | set -e cd apps/weblibre flutter build apk --release --flavor stable --target-platform android-arm,android-arm64 --split-per-abi --no-tree-shake-icons build-browser-alpha-impeller: description: Build arm64 alpha release APK with Impeller enabled (side-by-side installable with stable) run: | set -e cd apps/weblibre flutter build apk --release --flavor alphaImpeller --target-platform android-arm64 --no-tree-shake-icons build-browser-alpha-legacy: description: Build arm64 alpha release APK with the legacy Skia renderer (side-by-side installable with stable) run: | set -e cd apps/weblibre flutter build apk --release --flavor alphaLegacy --target-platform android-arm64 --no-tree-shake-icons