Commit Graph

1427 Commits

Author SHA1 Message Date
Achintha Isuru
d9819f7a82 Export keystore env vars without app suffix
Change exported keystore environment variable names to remove the app-specific suffix so build.gradle.kts can read CM_KEYSTORE_PATH, CM_KEYSTORE_PASSWORD, CM_KEY_ALIAS, and CM_KEY_PASSWORD. Also ensure CI=true is exported and add informational echo output showing the keystore path and exported variables for easier debugging.
2026-03-05 23:25:43 -05:00
Achintha Isuru
1c3cd211ab Merge branch 'dev' into 493-implement-rapid-order-creation-voice-text-in-client-mobile-app 2026-03-05 17:06:46 -05:00
Achintha Isuru
034f4fa871 Update M4 demo guide title and section header for consistency 2026-03-05 17:05:59 -05:00
Achintha Isuru
46b5d852dd Remove M4 seed files
Delete docs/MILESTONES/M4/Seed/README.md and docs/MILESTONES/M4/Seed/seed.gql. The removed README provided instructions and inventory for the M4 validation DB seed and seed.gql contained the full @transaction GraphQL mutation used to populate that seed. Removes the M4 seed artifacts from the docs; restore from source control or consult the team if the seed is still required.
2026-03-05 16:09:23 -05:00
Achintha Isuru
b8345a0fbe Merge pull request #559 from Oloodi/Inconsistent-Shift-Booking-Status
BE: Create seed data for the validation database #555
2026-03-05 16:08:18 -05:00
Achintha Isuru
45c6deb8a3 fix(ci): remove heredoc to resolve YAML syntax error on line 169
Replaced heredoc with direct echo statements to avoid YAML parsing issues.
2026-03-05 15:43:24 -05:00
Achintha Isuru
7a185d6402 fix(ci): resolve YAML syntax error on line 168 in hotfix workflow
Replaced multiline YAML string with heredoc approach to avoid quoting issues.
2026-03-05 15:41:54 -05:00
Achintha Isuru
ac8891c43c fix(ci): fix YAML syntax error in hotfix-branch-creation workflow
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.
2026-03-05 15:38:14 -05:00
Achintha Isuru
b8b39411fa Merge branch 'demo/prep-demo-m3' into dev 2026-03-05 15:35:31 -05:00
Achintha Isuru
4b09f050b0 fix: Update milestone version format in changelogs for consistency 2026-03-05 15:33:35 -05:00
Achintha Isuru
f75b56b6ec Revert "Update Makefile"
This reverts commit 1c21d5ee43.
2026-03-05 15:31:50 -05:00
Achintha Isuru
1c21d5ee43 Update Makefile 2026-03-05 15:30:57 -05:00
Achintha Isuru
83c05ad99e Improve release scripts and make workflows manual
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.
2026-03-05 15:30:27 -05:00
Achintha Isuru
14bb00aae4 Rename mobile app dirs; update changelog versions
Rename mobile app directories (client_app -> client, staff_app -> staff) and normalize changelog version tags from `0.0.1-M3` to `v0.0.1-m3` in the affected CHANGELOG.md files to standardize folder naming and version formatting.
2026-03-05 15:10:28 -05:00
Achintha Isuru
107ce1d48a feat(ci): update release notes format to new template
Updated extract-release-notes.sh to follow new format:

**Environment:** {ENV}

**Tag:** {TAG}

## What is new in this release

{changelog content}

Improvements:

- Moved environment and tag info to the top

- Added 'What is new in this release' heading

- Improved awk pattern to properly extract changelog sections

- Support both [vX.Y.Z] and [X.Y.Z] version formats in CHANGELOG

- Removes unnecessary app name and separator lines

Testing:

✅ worker-mobile-app: Extracts content from apps/mobile/apps/staff/CHANGELOG.md

✅ client-mobile-app: Extracts content from apps/mobile/apps/client/CHANGELOG.md

✅ Handles [v0.0.1-m3] format correctly
2026-03-05 15:09:32 -05:00
Achintha Isuru
8378ebddea ci: change all workflows to manual trigger only (workflow_dispatch)
Updated workflows to use workflow_dispatch instead of pull_request/push:

- backend-foundation.yml: Removed pull_request and push triggers

- mobile-ci.yml: Removed pull_request and push triggers with path filters

- web-quality.yml: Removed pull_request and push triggers

Workflows now only run manually via Actions tab. This gives more control over when CI runs and reduces unnecessary workflow executions.
2026-03-05 14:54:18 -05:00
Achintha Isuru
62b6dd22aa fix: update Flutter version to 3.38.x in product release workflow 2026-03-05 14:31:23 -05:00
Achintha Isuru
920ba40c50 fix(ci): improve version extraction script for GitHub Actions compatibility
- Replace bash [[ ]] regex test with grep -Eq for better portability

- Add debug output showing pwd and directory listing on file not found

- Use explicit regex groups for + and - separately for better compatibility
2026-03-05 14:25:34 -05:00
Achintha Isuru
639aeeb708 fix(ci): keep version suffix/build in tags and fix Node.js cache
- Keep full version format (0.0.1-m3 or 1.2.3+456) instead of stripping suffix

- Tags now include full version: krow-withus-worker-mobile/dev-v0.0.1-m3

- Remove invalid Node.js cache path that was causing resolution errors
2026-03-05 14:21:27 -05:00
Achintha Isuru
be43030058 fix(ci): redirect script messages to stderr and support version format X.Y.Z-suffix
Fixed workflow failure by ensuring only data goes to stdout, not informational messages. Also added support for version format X.Y.Z-suffix in addition to X.Y.Z+build.
2026-03-05 14:10:05 -05:00
Achintha Isuru
bdacedbced Add mobile APK signing, build and release scripts
Add four new helper scripts for mobile APK workflows: setup-apk-signing.sh (decode keystores and export signing env vars), verify-apk-signature.sh (check and display APK certificate info), attach-apk-to-release.sh (rename and upload APK to a GitHub Release), and setup-mobile-github-secrets.sh (helper to generate/show required GitHub Secrets). Update product-release.yml to expose version/tag outputs and add a build-mobile-artifacts job that sets up Java/Flutter, installs deps, configures signing from repository secrets, builds APKs for worker/client apps, verifies signatures, uploads artifacts, and optionally attaches the APK to the GitHub Release. Secrets and envvar naming conventions are handled to support dev/staging/prod keystores; documentation references (docs/RELEASE/APK_SIGNING_SETUP.md) are noted in scripts.
2026-03-05 14:03:21 -05:00
Achintha Isuru
11bbd8c87a feat: Refactor APK signing and verification process into separate scripts 2026-03-05 14:02:26 -05:00
Achintha Isuru
8b9a58adb1 feat: Add mobile CI/CD secrets setup for APK signing
- 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.
2026-03-05 13:55:38 -05:00
Achintha Isuru
4cc2dafa18 Normalize mobile app pubspec versions to 0.0.1-m3
Standardize prerelease version tags for mobile apps. Updated client and staff pubspecs to use 0.0.1-m3 instead of their previous Iliana*-M3 suffixed versions:
- apps/mobile/apps/client/pubspec.yaml: 0.0.1-IlianaClientM3 -> 0.0.1-m3
- apps/mobile/apps/staff/pubspec.yaml: 0.0.1-IlianaStaffM3 -> 0.0.1-m3
This keeps version naming consistent across the mobile projects.
2026-03-05 12:40:59 -05:00
Achintha Isuru
dbbf54287f Add GitHub workflows, release scripts, PR template
Add CI/CD and release automation assets: new GitHub Actions workflows (backend-foundation, hotfix-branch-creation, mobile-ci, product-release, web-quality), shell scripts for version/tag/release-note extraction and release-summary generation (.github/scripts/*), and a Pull Request template. Implements hotfix branch creation from tags, automatic tag name generation, version extraction from pubspec.yaml, CHANGELOG-based release notes extraction, selective mobile CI (detects changed files, builds and lints only affected Dart files), backend service test dry-runs, and automated GitHub release creation with summaries.
2026-03-05 12:40:13 -05:00
Achintha Isuru
8aa29b3149 fix: rename workflow to clarify purpose as Hotfix Branch Creation 2026-03-05 12:35:59 -05:00
Achintha Isuru
7f7c44f691 Merge branch 'dev' into 577-mobile-define-and-automate-release-and-tagging-strategy-for-client-staff-apps 2026-03-05 12:31:42 -05:00
Achintha Isuru
f8bdbcc2fb Update product-release.yml 2026-03-05 12:31:36 -05:00
Achintha Isuru
0394fe18eb Merge pull request #578 from Oloodi/577-mobile-define-and-automate-release-and-tagging-strategy-for-client-staff-apps
Defined and automate release and tagging strategy for client staff apps
2026-03-05 12:27:45 -05:00
Achintha Isuru
c3c305c827 feat: add pull request template for improved contribution guidelines 2026-03-05 12:25:25 -05:00
Achintha Isuru
7e52b19dd5 docs: remove outdated root-level release documentation
🗑️ Removed Files:
- RELEASE_IMPLEMENTATION.md
- RELEASE_INDEX.md
- RELEASE_PACKAGE_SUMMARY.md
- RELEASE_QUICK_REFERENCE.md
- RELEASE_STRATEGY.md
- RELEASE_VISUAL_GUIDE.md
- RELEASE_WORKFLOW.md
- VERSION_FILES_REFERENCE.md

📍 Reason for Removal:
- These were draft/planning documents with incorrect tag format
- Used 'staff-mobile/*' instead of correct 'krow-withus-worker-mobile/*'
- Not aligned with actual GitHub Actions workflows
- Caused confusion about which documentation to follow

✅ Current Documentation (Correct & Up-to-Date):
- docs/RELEASE/MOBILE_RELEASE_PLAN.md
- docs/RELEASE/HOTFIX_PROCESS.md
- docs/RELEASE/OVERALL_RELEASE_PLAN.md

The docs/RELEASE/ files use correct tag naming and align with the
implemented GitHub Actions workflows (.github/workflows/product-release.yml
and hotfix-branch-creation.yml).
2026-03-05 12:16:54 -05:00
Achintha Isuru
39f0d9d53c refactor(ci): update product options to be more specific
🔄 Changed product option values:
- worker → worker-mobile-app
- client → client-mobile-app

📝 Updated Files:
- .github/workflows/hotfix-branch-creation.yml
- .github/workflows/product-release.yml
- .github/scripts/extract-version.sh
- .github/scripts/extract-release-notes.sh
- .github/scripts/create-release-summary.sh
- .github/scripts/generate-tag-name.sh

🎯 Key Changes:
- Product dropdown options now more specific
- All conditional checks updated to use new values
- Tag/branch names remain clean (strips -mobile-app suffix)
- Tag format unchanged: krow-withus-worker-mobile/prod-v0.1.0
- Branch format unchanged: hotfix/krow-withus-worker-mobile-v0.1.0

Benefits:
✅ Clearer product selection (distinguishes mobile from future web/backend)
✅ Backward compatible tag format
✅ Maintains clean naming conventions
2026-03-05 12:11:45 -05:00
Achintha Isuru
4ec1b2ca26 refactor(ci): enhance hotfix workflow and rename workflow files
🔄 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
2026-03-05 12:07:32 -05:00
Achintha Isuru
3e31002d1e refactor(ci): replace mobile-specific terms with generic product 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
2026-03-05 11:58:28 -05:00
Achintha Isuru
0e296bf83b refactor(ci): enhance mobile release workflow with emojis and extracted scripts
✨ 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)
2026-03-05 11:49:11 -05:00
Achintha Isuru
054852fcde feat(ci): add GitHub Actions workflows for mobile releases and hotfixes
- 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/
2026-03-05 11:41:45 -05:00
Achintha Isuru
89dd9fe723 docs(mobile): remove placeholder entries for RAPID and recurring orders in CHANGELOGs 2026-03-05 11:38:36 -05:00
Achintha Isuru
f771bca72a docs(mobile): enhance CHANGELOGs with comprehensive M4 features from git history
- Add Documents & Certificates management features
- Include Camera/gallery support for uploads
- Add Benefits overview section
- Expand Attire management with verification states
- Include RAPID order audio recording and transcription
- Add Hub manager assignment and Cost center features
- Include session management improvements
- Add navigation enhancements and bug fixes
- Document Core API services integration
- Include all user-facing features from milestone issues
2026-03-05 11:34:00 -05:00
Achintha Isuru
c06e14e668 docs(mobile): update M4 version to 0.0.1-M4 (keeping same base version) 2026-03-05 11:21:43 -05:00
Achintha Isuru
6b26a72144 feat(mobile): add localization support for Spanish language in staff app 2026-03-05 11:16:52 -05:00
Achintha Isuru
889d48144c docs(mobile): move CHANGELOGs to correct app directories (staff and client) 2026-03-05 11:15:05 -05:00
Achintha Isuru
e6b0a061ba docs(mobile): add M4 milestone features to staff and client app CHANGELOGs 2026-03-05 11:11:15 -05:00
Achintha Isuru
7be3ff5bea docs(mobile): add M3 milestone CHANGELOGs for staff and client apps 2026-03-05 11:10:12 -05:00
Achintha Isuru
73bd431518 docs(mobile): add M3 milestone CHANGELOGs for staff and client apps 2026-03-05 11:10:03 -05:00
Achintha Isuru
085445e730 feat: add comprehensive release process documentation and version file references
- Introduced RELEASE_VISUAL_GUIDE.md for a visual overview of the release pipeline, including development, staging, and production phases.
- Created RELEASE_WORKFLOW.md detailing step-by-step release procedures for single and multi-product releases, including hotfix processes.
- Added VERSION_FILES_REFERENCE.md to outline all necessary version file updates for each product during releases, ensuring consistency and completeness.
2026-03-05 10:49:09 -05:00
Achintha Isuru
afa4d7cba9 Merge branch 'dev' into 493-implement-rapid-order-creation-voice-text-in-client-mobile-app 2026-03-05 09:36:37 -05:00
Achintha Isuru
308105a1f9 Update formatting for profile completion notes in M4 demo guide 2026-03-04 17:03:16 -05:00
Achintha Isuru
856e7545f6 Implement profile completion checks in shift details flow and update UI accordingly 2026-03-04 16:48:49 -05:00
Achintha Isuru
020b541ed1 Bump staff app version to IlianaStaffM4
Update apps/mobile/apps/staff/pubspec.yaml version from 0.0.1-IlianaStaffM3 to 0.0.1-IlianaStaffM4 to reflect the new staff app build/release.
2026-03-04 14:34:47 -05:00
Achintha Isuru
01f4990e33 Update codemagic.yaml 2026-03-04 14:29:28 -05:00