chore: Flutter mobile app, CI, and dev tooling

- mobile/: Flutter/Dart merchant mobile app skeleton
- .github/: GitHub Actions CI workflows
- .dockerignore: exclude host node_modules from build context
- .cursorrules: Cursor IDE project rules
- .claude/: Claude Code project settings and launch config

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-05-27 21:35:27 +03:30
parent 42d4cb896a
commit a85890f30a
52 changed files with 3919 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
name: CI
on:
push:
branches: [main, master, develop]
pull_request:
branches: [main, master, develop]
jobs:
api:
runs-on: ubuntu-latest
services:
redis:
image: redis:7-alpine
ports:
- 6379:6379
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "10.0.x"
- name: Restore
run: dotnet restore src/Meezi.API/Meezi.API.csproj
- name: Build
run: dotnet build src/Meezi.API/Meezi.API.csproj --no-restore -c Release
- name: Test
run: dotnet test tests/Meezi.API.Tests/Meezi.API.Tests.csproj -c Release
web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: web/dashboard
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: web/dashboard/package-lock.json
- run: npm ci
- run: npm run build
env:
NEXT_PUBLIC_API_URL: http://localhost:5080
e2e:
runs-on: ubuntu-latest
continue-on-error: true
defaults:
run:
working-directory: web/dashboard
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: web/dashboard/package-lock.json
- run: npm ci
- run: npx playwright install chromium --with-deps
- name: E2E (API-only smoke; set PLAYWRIGHT_API_URL when API service available)
run: npm run test:e2e -- e2e/api-health.spec.ts
env:
PLAYWRIGHT_API_URL: http://localhost:5080
flutter:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: stable
- run: flutter analyze mobile/meezi_app
- run: flutter analyze mobile/meezi_pos
+20
View File
@@ -0,0 +1,20 @@
name: Deploy
on:
push:
tags:
- "v*"
jobs:
build-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build API image
run: docker build -f docker/api/Dockerfile -t meezi-api:${{ github.ref_name }} .
- name: Build Web image
run: docker build -f docker/web/Dockerfile -t meezi-web:${{ github.ref_name }} .
- name: Deploy note
run: |
echo "Push images to your registry and deploy on Arvan per DEPLOY.md"
echo "Required secrets: registry credentials, connection strings (not in repo)"