Add release workflow, setup script, and repo onboarding docs - #3
Hidden character warning
Conversation
- Add GitHub Actions workflow for multi-platform builds and releases (Windows, macOS, Linux, Android, iOS, Web) - Add PowerShell setup script for Windows development environment initialization - Add VS Code configuration files for Dart/Flutter development - Rewrite README with comprehensive quick start guide, platform notes, and release procedures - Update dependencies (meta 1.17.0 → 1.18.0, test_api 0.7.10 → 0.7.11) - Remove sqlite3 system source configuration from pubspec.yaml to use precompiled binary
Improve GitHub Actions release workflow: include workflow name in concurrency group and only cancel in-progress runs for pull_request events; skip full platform builds (android/windows/linux/macos/ios) during pull_request runs. Add robust tag verification using gh CLI to ensure a remote tag exists and resolves to the exact commit targeted by the workflow (fail if mismatched) before uploading release assets. Other edits: remove hardcoded dart.flutterSdkPath from .vscode settings, clarify Flutter SDK path and CI-fixed version in README, and adjust setup.ps1 log text for Drift code generation. These changes prevent accidental release-asset overwrites and make local SDK config guidance clearer.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cef296b8bb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| run: flutter pub get | ||
|
|
||
| - name: Build Web release | ||
| run: flutter build web --release |
There was a problem hiding this comment.
Disable the web build until web imports are conditional
This step now runs for every PR/main push, but the app still has unconditional dart:io imports on the web entry path (lib/app.dart imports LogProvider, whose file starts with import 'dart:io';; AppNavigation also imports BackupScreen -> BackupService with dart:io). Because the Dart web compiler rejects dart:io, flutter build web --release will fail before CI or release artifacts can complete unless those imports are made conditional or the web job is gated off.
Useful? React with 👍 / 👎.
| if [[ "$tag_name" =~ -(alpha|beta|rc)([.-]|$) ]]; then | ||
| is_prerelease=true |
There was a problem hiding this comment.
Mark every accepted prerelease tag as prerelease
The tag validation accepts any semver prerelease suffix, but this check only sets IS_PRERELEASE for alpha, beta, or rc. A tag such as v0.1.0-preview.1 or v0.1.0-dev.1 therefore passes validation and then publishes as a normal GitHub Release because --prerelease is omitted; either mark any hyphenated semver prerelease as prerelease or reject suffixes outside the intended set.
Useful? React with 👍 / 👎.
Merge main into the release-workflow branch, combine the trilingual README with onboarding/CI docs, gate the web build behind ENABLE_WEB_BUILD until unconditional dart:io imports are fixed, and treat any hyphenated semver tag as a prerelease. Co-authored-by: ALPACA LI <liyuanstudio273@gmail.com>
Existing prefer_interpolation / avoid_print / use_build_context_synchronously infos were failing `flutter analyze` and blocking the new release workflow. Co-authored-by: ALPACA LI <liyuanstudio273@gmail.com>
Summary
sqlite3system-source hook frompubspec.yamlso the project follows the default dependency strategy.Testing