name: CI

on:
  push:
    branches:
      - main
  pull_request:

concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: true

jobs:
  mobile:
    name: Test Mobile
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Init Hermit
        uses: cashapp/activate-hermit@v1
        with:
          cache: true
      - name: Get dependencies
        working-directory: ./online-boutique/mobile
        run: flutter pub get
      - name: Analyze
        working-directory: ./online-boutique/mobile
        run: flutter analyze
      - name: Test
        working-directory: ./online-boutique/mobile
        run: flutter test
  web:
    name: Test Web
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Init Hermit
        uses: cashapp/activate-hermit@v1
        with:
          cache: true
      - name: Get dependencies
        working-directory: ./online-boutique/web
        run: npm install
      - name: Type check
        working-directory: ./online-boutique/web
        run: tsc
      - name: Test
        working-directory: ./online-boutique/web
        run: npm run test
  backend:
    name: Build Backend
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Init Hermit
        uses: cashapp/activate-hermit@v1
        with:
          cache: true
      - name: Build
        run: ftl build --log-level=trace online-boutique