name: CI

on:
  push:
    branches: [ "main", "develop" ]
  pull_request:
    branches: [ "main", "develop" ]

jobs:
  swift-build:
    name: Swift Build & Test
    runs-on: macos-latest
    
    steps:
    - uses: actions/checkout@v4
    
    - name: Select Xcode version
      run: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    
    - name: Swift Version
      run: swift --version
    
    - name: Build
      run: swift build -v
    
    - name: Run tests
      run: swift test -v
    
    - name: Build Release
      run: swift build -c release -v

  web-build:
    name: Web App Build
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v4
    
    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '18'
        cache: 'npm'
        cache-dependency-path: web/package-lock.json
    
    - name: Install dependencies
      working-directory: ./web
      run: npm ci
    
    - name: Build web app
      working-directory: ./web
      run: npm run build
    
    - name: Run web tests
      working-directory: ./web
      run: npm test --if-present