--- # Tekton Task: Integration Tests for Poimen Memory Service # # Executes: # 1. Database migrations # 2. Integration test suites (cargo test) # 3. Reports results # # Parameters: # - image: Docker image with SHA to test # # Results: # - summary: Test summary (pass/fail + count) apiVersion: tekton.dev/v1 kind: Task metadata: name: poimen-integration-test namespace: poimen spec: params: - name: image type: string description: "Docker image SHA to test (e.g., forgejo.riotpiao.com/riotpiao-poimen/poimen-memory:abc123)" results: - name: summary description: "Test summary: PASS or FAIL + test count" steps: # Step 1: Apply database migrations - name: migrate image: $(params.image) env: - name: DB_HOST value: "memory-db-rw.poimen.svc.cluster.local" - name: DB_PORT value: "5432" - name: DB_NAME value: "memory" - name: DB_USER value: "app" - name: DB_PASSWORD valueFrom: secretKeyRef: name: memory-db-app key: password script: | #!/bin/bash set -e echo "==========================================" echo "Step 1: Database Migrations" echo "==========================================" echo "" # Run migrations /app/migrations/run_migrations.sh echo "" echo "✓ Migrations complete" # Step 2: Run integration tests - name: test image: $(params.image) env: - name: DATABASE_URL value: "postgresql://app@memory-db-rw.poimen.svc.cluster.local:5432/memory" - name: RUST_LOG value: "info,mem_cli=debug,mem_ingest=debug,mem_store=debug" - name: MEM_AUTH_MODE value: "none" - name: SQLX_OFFLINE value: "true" - name: PGPASSWORD valueFrom: secretKeyRef: name: memory-db-app key: password script: | #!/bin/bash set -e echo "==========================================" echo "Step 2: Integration Tests" echo "==========================================" echo "" TEST_SUITES=( "it_phase3_phase4" "it_unified_query_4_6" "it_temporal_filtering_4_2_fixed" ) PASSED=0 FAILED=0 for suite in "${TEST_SUITES[@]}"; do echo "Running: $suite" if cargo test --test "$suite" --lib 2>&1 | tail -50; then ((PASSED++)) echo "✓ $suite passed" else ((FAILED++)) echo "✗ $suite failed" fi echo "" done # Run unit tests echo "Running unit tests..." if cargo test --lib mem_ingest 2>&1 | tail -100; then echo "✓ mem_ingest passed" else ((FAILED++)) echo "✗ mem_ingest failed" fi echo "" if cargo test --lib mem_cli::query 2>&1 | tail -100; then echo "✓ mem_cli::query passed" else ((FAILED++)) echo "✗ mem_cli::query failed" fi echo "" echo "==========================================" echo "Test Summary: $PASSED passed, $FAILED failed" echo "==========================================" if [ $FAILED -eq 0 ]; then echo "PASS: All integration tests passed" echo "PASS: All integration tests passed" > /tekton/results/summary exit 0 else echo "FAIL: $FAILED test suite(s) failed" echo "FAIL: $FAILED test suite(s) failed" > /tekton/results/summary exit 1 fi resources: requests: memory: "1Gi" cpu: "500m" limits: memory: "2Gi" cpu: "2000m"