Fixed line 168 syntax error caused by sed command with backslash continuation.
Replaced:
sed -i "1 a\\\
\\
$HOTFIX_ENTRY" "$CHANGELOG_PATH"
With simpler approach:
- Extract title line
- Extract body
- Reconstruct file with hotfix entry inserted
This avoids YAML parsing issues with backslash escaping.
Redirect script informational/warning output to stderr and improve robustness of release tooling. Changes include:
- Redirect many echo messages to stderr so scripts can emit machine-readable output on stdout.
- Extract-release-notes: better parsing of CHANGELOG entries (tries v-prefixed and non-prefixed headings, cleaner note formatting) and improved fallbacks when changelog is missing.
- Extract-version: accept versions with +build or -suffix, add diagnostic output when pubspec is missing, and tighten validation.
- Setup/verify APK signing: more consistent stderr logging and clearer warnings; ensure keystore decoding/logging is visible.
- Minor script usage message fixes (generate-tag-name, attach-apk-to-release).
- CI/workflows: change backend-foundation, mobile-ci, and web-quality triggers to workflow_dispatch (manual runs); update product-release (make scripts step label emoji, remove node cache lines, bump Flutter to 3.38.x).
These changes improve CI reliability, make scripts friendlier for automated consumers, and fix release note/version parsing edge cases.
- Updated Makefile to include new command for setting up mobile CI secrets.
- Enhanced tools.mk with setup-mobile-ci-secrets target.
- Created setup-mobile-github-secrets.sh script for configuring GitHub Secrets for APK signing.
- Added APK signing implementation summary documentation.
- Created detailed APK signing setup guide.
- Added GitHub secrets checklist for easy reference.
🔄 Hotfix Workflow Enhancements:
- Accept tags from any environment (dev/stage/prod), not just production
- Changed input parameter: 'production_tag' → 'tag'
- Updated validation to show all available tags (not just prod)
- Made terminology more generic throughout
- Show 20 most recent tags instead of 10 for better visibility
📝 File Renames:
- .github/workflows/mobile-hotfix.yml → hotfix-branch-creation.yml
- .github/workflows/mobile-release.yml → product-release.yml
Benefits:
✅ Hotfix workflow now works with dev/stage/prod tags
✅ More flexible for various hotfix scenarios
✅ Clearer, more descriptive workflow file names
✅ Consistent with product-agnostic terminology
🔄 Updated workflows and scripts to use product-agnostic naming:
Workflow Changes:
- 📱 Mobile Release → 📦 Product Release
- 🚨 Mobile Hotfix → 🚨 Product Hotfix
- Mobile App → Product (in descriptions)
- "mobile app" → "product" (in messages and tags)
- "pubspec.yaml" → "version file" (in user-facing text)
Display Names:
- Worker Mobile → Worker Product
- Client Mobile → Client Product
- Staff Mobile App → Staff Product (Worker)
- Client Mobile App → Client Product
Benefits:
✅ Makes workflows extensible for other product types
✅ Consistent terminology across all automation
✅ Easier to add web, backend, or other products later
✅ Keeps implementation details (paths, scripts) unchanged
✅ Maintains backward compatibility with existing tags
Note: File paths remain unchanged (apps/mobile/...) as they are implementation-specific
✨ Enhanced mobile-release.yml workflow:
- 📱 Added emojis to all steps for better visual feedback
- 🔧 Version now automatically extracted from pubspec.yaml
- No manual version input required
- Reads from apps/mobile/apps/staff/pubspec.yaml for worker
- Reads from apps/mobile/apps/client/pubspec.yaml for client
- 📝 Removed manual version input field from workflow
🔨 Created reusable shell scripts in .github/scripts/:
1. extract-version.sh - Extract version from pubspec.yaml
2. generate-tag-name.sh - Generate tag names consistently
3. extract-release-notes.sh - Extract CHANGELOG sections
4. create-release-summary.sh - Generate GitHub Step Summary with emojis
Benefits:
✅ Simpler workflow - just select app and environment
✅ Single source of truth for versions (pubspec.yaml)
✅ Reusable scripts can be used in other workflows
✅ Better error messages and validation
✅ Enhanced visual feedback with emojis
✅ Cleaner workflow file (moved logic to scripts)
- Add mobile-release.yml workflow:
- Manual trigger with app (worker/client) and environment (dev/stage/prod) selection
- Version validation (semantic versioning)
- Tag creation with format: krow-withus-<app>-mobile/<env>-vX.Y.Z
- GitHub Release creation with CHANGELOG extraction
- Release naming: 'Krow With Us - Worker Mobile - DEV - v0.1.0'
- Pre-release support
- Add mobile-hotfix.yml workflow:
- Emergency production fix automation
- Creates hotfix branch from production tag
- Auto-increments PATCH version
- Updates pubspec.yaml and CHANGELOG.md
- Creates PR with hotfix instructions
- Follows documented hotfix process
Both workflows support staff (worker) and client mobile apps independently.
Implements mobile release strategy from docs/release/