name: CI

on: 
    pull_request:  
        branches: main
    push: 
        branches: main
    merge_group: {}

jobs:
    test:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                    fetch-depth: 0

            - uses: pnpm/action-setup@v4

            - uses: actions/setup-node@v4
              with:
                node-version: 20.x
                registry-url: 'https://registry.npmjs.org'
                cache: pnpm
            
            - name: Install
              run: pnpm install

            - name: Build
              run: pnpm build
            
            - name: Start Docker Containers
              run: |
                docker compose up -d
                # Wait for services to be ready (optional)
                sleep 10
            
            - name: Lint
              run: pnpm lint
            
            - name: Test
              run: pnpm test

            - name: Typecheck
              run: pnpm typecheck

            - name: Stop Docker Containers
              run: docker compose down
            