Create proper Tekton Pipeline that orchestrates multiple Tasks: k8s/tekton/poimen-pipeline.yaml: - Pipeline: poimen-ci - Orchestrates integration tests → gate → promote - Tasks: 1. integration-tests (poimen-integration-test Task) 2. gate-on-tests (verify results) 3. promote-image (promote to :latest) 4. cleanup (final step) - Parameters: image SHA, registry creds - Results: test summary, promotion status .gitea/workflows/build.yaml: - Changed from TaskRun to PipelineRun - Trigger: kubectl create PipelineRun - Pass image SHA + registry credentials - Wait for Pipeline completion (10m timeout) - Gate: Only promote if tests pass - Print: Full pipeline status + test logs Pipeline Flow: CI (build.yaml) → PipelineRun ↓ Pipeline: poimen-ci ├─ Task 1: integration-tests │ ├─ Run migrations │ ├─ Run integration test suites │ └─ Return summary ├─ Task 2: gate-on-tests (runAfter Task 1) │ └─ Check results ├─ Task 3: promote-image (runAfter Task 2) │ └─ Promote to :latest └─ Task 4: cleanup (finally) Benefits: ✓ Full pipeline orchestration ✓ Proper Tekton pattern ✓ Easy to add more Tasks ✓ Clear dependency flow ✓ Results propagation ✓ Gates and conditions Next: Add more Tasks to Pipeline as needed - Docker build task - SCA task - Performance test task - Deployment task
Replace ad-hoc K8s Job with proper Tekton TaskRun: k8s/tekton/integration-test-task.yaml: - Tekton Task for integration testing - Two stages: migrate + test - Runs existing Rust integration tests: * it_phase3_phase4 (ingest + persistence) * it_unified_query_4_6 (query endpoint) * it_temporal_filtering_4_2_fixed (temporal) * mem_ingest (extraction pipeline) * mem_cli::query (query handler) - Reports results to /tekton/results/summary - Resource limits: 1Gi mem, 500m CPU .gitea/workflows/build.yaml: - Integrated Tekton trigger after image push - Create TaskRun with image SHA - Wait for completion (5m timeout) - Gate image promotion on test passing - Only promote to :latest if tests pass Pattern (from homelab-frontend): 1. Build image → push with SHA 2. Trigger Tekton TaskRun 3. Wait for result 4. Gate promotion 5. Promote to :latest only if tests pass Benefits: ✓ Proper K8s CI/CD framework ✓ Reusable Task ✓ Better logging/results ✓ Proper resource mgmt ✓ Matches homelab pattern Requires: - Tekton Pipelines installed in cluster - KUBECONFIG_B64 secret in Forgejo