Files
projet_gestion_commande/.github/workflows/frontend-admin-build.yml
T
2026-05-03 20:52:23 +02:00

83 lines
2.6 KiB
YAML

name: Frontend Admin - EAS Build
on:
push:
branches: [main, pre-prod]
paths:
- "frontend-admin/**"
pull_request:
branches: [main, pre-prod]
paths:
- "frontend-admin/**"
jobs:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend-admin/package-lock.json
- name: Install dependencies
working-directory: frontend-admin
run: npm ci
- name: Typecheck
working-directory: frontend-admin
run: npx tsc --noEmit
build-apk:
needs: typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend-admin/package-lock.json
- name: Setup Expo & EAS CLI
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: Install dependencies
working-directory: frontend-admin
run: npm ci
- name: Inject EAS project ID
working-directory: frontend-admin
run: |
jq '.expo.extra.eas.projectId = "${{ secrets.EXPO_PROJECT_ID }}"' app.json > app.tmp.json
mv app.tmp.json app.json
- name: Build APK
working-directory: mobile
env:
EAS_BUILD_NO_EXPO_GO_WARNING: true
run: eas build --platform android ${{ (github.ref == 'refs/heads/main' || github.base_ref == 'main') && '--profile production' || '--profile preview' }} --non-interactive
- name: Download APK
working-directory: frontend-admin
run: |
APK_URL=$(eas build:list --platform android --status finished --limit 1 --json --non-interactive | jq -r '.[0].artifacts.buildUrl')
curl -L -o admin-panel-prod.apk "$APK_URL"
- name: Upload production APK artifact
uses: actions/upload-artifact@v4
with:
name: admin-panel-android-prod-apk
path: frontend-admin/admin-panel-prod.apk
retention-days: 14