name: Backend only integration tests

on:
  push:
    branches:
      - "main"
    paths:
      - "backend/**"
      - ".github/workflows/backend-test.yml"
  pull_request:
    types: [opened, synchronize, reopened]
    paths:
      - "backend/**"
      - ".github/workflows/backend-test.yml"

jobs:
  cargo_test:
    runs-on: [self-hosted, new]
    container:
      image: ghcr.io/windmill-labs/backend-tests
    services:
      postgres:
        image: postgres
        env:
          POSTGRES_DB: windmill
          POSTGRES_PASSWORD: changeme

        options: >-
          --health-cmd pg_isready --health-interval 10s --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rust-lang/setup-rust-toolchain@v1
      - uses: Swatinem/rust-cache@v2
        with:
          workspaces: |
            backend
            backend -> target
      - name: cargo test
        timeout-minutes: 10
        run:
          mkdir frontend/build && cd backend && touch
          windmill-api/openapi-deref.yaml &&
          DATABASE_URL=postgres://postgres:changeme@postgres:5432/windmill DISABLE_EMBEDDING=true cargo
          test --features enterprise --all -- --nocapture 
