name: Test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  CARGO_TERM_COLOR: always

jobs:
  test-workspace:
    name: Workspace Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: https://codeberg.org/TheAwitworker/rust-toolchain@stable

      - name: Install OpenBLAS
        run: sudo apt-get update -qq && sudo apt-get install -y libopenblas-dev libreadline-dev zlib1g-dev pkg-config

      - name: Run workspace tests (excluding pg_infer extension)
        run: cargo test --workspace --exclude pg_infer

  test-pgrx:
    name: pgrx Integration Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: https://codeberg.org/TheAwitworker/rust-toolchain@stable

      - name: Install system deps
        run: sudo apt-get update -qq && sudo apt-get install -y libopenblas-dev libreadline-dev zlib1g-dev pkg-config

      - name: Install cargo-pgrx
        run: cargo install cargo-pgrx --version 0.17.0 --locked

      - name: Initialize pgrx (PostgreSQL 18)
        run: cargo pgrx init --pg18 download

      - name: Run pgrx tests
        run: cargo pgrx test pg18
