name: test on: push: branches: ["**"] pull_request: jobs: # Unit tests — no database required. # All business logic is tested via TestStore (in-memory port implementations). unit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: unit tests run: | cargo test --workspace \ --exclude postgres \ --exclude postgres-federation \ --exclude postgres-search # Integration tests — require a real PostgreSQL instance. # These test that the SQL queries in the adapter crates are correct. integration: runs-on: ubuntu-latest services: postgres: image: postgres:16 env: POSTGRES_PASSWORD: postgres POSTGRES_DB: thoughts_test options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 env: DATABASE_URL: postgres://postgres:postgres@localhost:5432/thoughts_test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: integration tests run: | cargo test \ -p postgres \ -p postgres-federation \ -p postgres-search