name: CI — P2 Drift (Go + Node)
on:
  push:
    branches: [main]
    paths: ['products/02-iac-drift-detection/**']
  pull_request:
    paths: ['products/02-iac-drift-detection/**']

jobs:
  agent:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        run: |
          git clone --depth=1 http://192.168.86.11:3005/jarvis/dd0c.git $GITHUB_WORKSPACE || true

      - name: Install Go
        run: |
          if ! command -v go &>/dev/null; then
            mkdir -p $HOME/go-sdk
            curl -sL https://go.dev/dl/go1.22.12.linux-amd64.tar.gz | tar -C $HOME/go-sdk --strip-components=1 -xzf -
          fi
          export PATH="$HOME/go-sdk/bin:$PATH"
          go version

      - name: Test agent
        run: |
          export PATH="$HOME/go-sdk/bin:$HOME/go/bin:$PATH"
          cd $GITHUB_WORKSPACE/products/02-iac-drift-detection/agent && go mod download && go mod tidy && go test ./...

      - name: Vet
        run: |
          export PATH="$HOME/go-sdk/bin:$HOME/go/bin:$PATH"
          cd $GITHUB_WORKSPACE/products/02-iac-drift-detection/agent && go vet ./...

  saas:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        run: |
          git clone --depth=1 http://192.168.86.11:3005/jarvis/dd0c.git $GITHUB_WORKSPACE || true

      - name: Install deps
        run: cd $GITHUB_WORKSPACE/products/02-iac-drift-detection/saas && npm ci --include=dev

      - name: Type check
        run: cd $GITHUB_WORKSPACE/products/02-iac-drift-detection/saas && ./node_modules/.bin/tsc --noEmit

      - name: Test
        run: cd $GITHUB_WORKSPACE/products/02-iac-drift-detection/saas && npm test
