Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
38b4db9
feat(data-index): Add Quarkus Flow integration tests module
ricardozanini Apr 16, 2026
6139189
wip: Configure Quarkus Flow integration tests with YAML workflows
ricardozanini Apr 16, 2026
53e83e6
Add Data Index E2E Testing Design Specification
ricardozanini Apr 20, 2026
a2f2153
docs: add module cleanup tracking document
ricardozanini Apr 20, 2026
c081d93
refactor(integration-tests): remove non-functional tests and unused w…
ricardozanini Apr 21, 2026
7232f13
docs: correct Module 1 cleanup summary - no dead code found
ricardozanini Apr 21, 2026
55025e8
docs: mark non-existent modules as N/A in cleanup summary
ricardozanini Apr 21, 2026
f10f914
docs: complete Phase 1 module cleanup audit
ricardozanini Apr 21, 2026
1e7cf3d
refactor(storage-common): delete deprecated EventProcessor interface
ricardozanini Apr 21, 2026
21d9886
feat(storage): add multi-module storage structure with Elasticsearch …
ricardozanini Apr 21, 2026
d9e297e
feat(event-processor): add event processor module with polling scheduler
ricardozanini Apr 21, 2026
c4b3942
chore: remove superpowers docs from git tracking
ricardozanini Apr 21, 2026
0509dd5
feat(event-processor): add Kafka consumer for Mode 3 support
ricardozanini Apr 21, 2026
8e11243
fix(integration-tests): add missing dependencies and fix YAML syntax
ricardozanini Apr 21, 2026
051c582
refactor: remove duplicate flat data-index-storage-postgresql module
ricardozanini Apr 21, 2026
bbd1901
refactor(storage-elasticsearch): remove unused ObjectMapper dependency
ricardozanini Apr 21, 2026
f839406
refactor(storage-postgresql): separate polling from storage layers
ricardozanini Apr 21, 2026
cda200b
refactor(storage): move StorageConfiguration to storage-common module
ricardozanini Apr 21, 2026
c86ec9e
feat: Implement v0.8 GraphQL API parity with filtering, ordering, and…
ricardozanini Apr 21, 2026
9f127e9
refactor: Unify all data-index modules under KubeSmarts naming and na…
ricardozanini Apr 21, 2026
9fb8b2e
feat: Add KIND cluster setup and dependency installation scripts
ricardozanini Apr 21, 2026
1ec3732
fix: Simplify KIND cluster to single-node for reliability
ricardozanini Apr 21, 2026
08edf40
feat: Add KIND cluster deployment and testing infrastructure for Data…
ricardozanini Apr 21, 2026
50d48d2
feat: Reorganize FluentBit configurations by deployment mode
ricardozanini Apr 21, 2026
d6d18c7
feat: Add workflow test app deployment and Java DSL workflows
ricardozanini Apr 21, 2026
71ca247
fix: Convert workflow test app to Java DSL (YAML packaging issue)
ricardozanini Apr 21, 2026
17f2255
docs: Add jackson-jq dependency conflict to Quarkus Flow issue report
ricardozanini Apr 21, 2026
d96e82d
fix(integration-tests): force jackson-jq 1.6.1 to fix workflow execution
ricardozanini Apr 21, 2026
bc96c53
feat(fluentbit): generate ConfigMaps from source files, deploy Mode 1
ricardozanini Apr 21, 2026
81139f5
feat(data-index): Phase 1 cleanup and KIND integration testing
ricardozanini Apr 24, 2026
c0f4928
ci: Add KIND integration tests workflow for Data Index
ricardozanini Apr 24, 2026
fbdb690
fix(ci): Use Maven reactor for container image builds
ricardozanini Apr 24, 2026
736bd61
fix(build): Remove Red Hat jandex-maven-plugin version
ricardozanini Apr 24, 2026
b3d2dd3
fix(ci): Fix workflow triggers and Maven build issues
ricardozanini Apr 24, 2026
5d9a490
fix(ci): Build everything from root in single Maven command
ricardozanini Apr 24, 2026
a1816cf
fix: Enable tests and fix Maven build scope
ricardozanini Apr 24, 2026
42abe75
fix(ci): Skip image build in deploy script when pre-built
ricardozanini Apr 24, 2026
a5a940b
fix(test): Update GraphQL test to use inputData/outputData fields
ricardozanini Apr 24, 2026
0e8544e
fix(deploy): Create data-index namespace and support skip flags
ricardozanini Apr 24, 2026
0b630df
fix(ci): Generate FluentBit ConfigMap before applying
ricardozanini Apr 24, 2026
7cdaadd
fix(fluentbit): Generate ConfigMap with output file and correct name
ricardozanini Apr 24, 2026
7c38a25
fix(integration-tests): use SimpleSetWorkflow instead of deleted Test…
ricardozanini Apr 24, 2026
519bc09
fix(tests): use Quarkus Dev Services for integration tests
ricardozanini Apr 24, 2026
d073960
fix(tests): disable E2E tests, fix workflow execution test
ricardozanini Apr 24, 2026
8f71e03
refactor(tests): move E2E tests to data-index-service module
ricardozanini Apr 24, 2026
c43c912
refactor: rename data-index-integration-tests to workflow-test-app
ricardozanini Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 2 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@ jobs:
distribution: 'temurin'
cache: maven

- name: Build with Maven
run: mvn -B clean install -pl persistence-commons,data-index,security-commons --no-transfer-progress
- name: Build and test with Maven
run: mvn -B clean install --no-transfer-progress

# Note: Only building modules needed for Data Index v1.0.0
# Excluded: jobs-service, jobs, kogito-apps-bom, kogito-apps-build-parent
# (BOM declares jobs-service in dependencyManagement, causing those modules to build)
#
# TODO: Enable tests incrementally as we migrate to SW 1.0.0
# Current test infrastructure relies on Apache Kogito runtime artifacts
203 changes: 203 additions & 0 deletions .github/workflows/data-index-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
name: Data Index Integration Tests

on:
push:
branches:
- main
paths:
- 'data-index/**'
- 'persistence-commons/**'
- '.github/workflows/data-index-integration-tests.yml'
pull_request:
branches:
- main
paths:
- 'data-index/**'
- 'persistence-commons/**'
- '.github/workflows/data-index-integration-tests.yml'

jobs:
integration-test:
name: KIND Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven

- name: Build project
run: |
mvn -B clean install -DskipTests \
--no-transfer-progress

- name: Build container images
run: |
mvn -B package -DskipTests \
-pl data-index/data-index-service,data-index/workflow-test-app \
-Dquarkus.container-image.build=true \
--no-transfer-progress

- name: Set up KIND cluster
uses: helm/kind-action@v1.10.0
with:
cluster_name: data-index-test
wait: 3m

- name: Load container images into KIND
run: |
kind load docker-image kubesmarts/data-index-service:999-SNAPSHOT \
--name data-index-test
kind load docker-image kubesmarts/workflow-test-app:999-SNAPSHOT \
--name data-index-test

- name: Install PostgreSQL
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

kubectl create namespace postgresql

helm install postgresql bitnami/postgresql \
--namespace postgresql \
--set auth.username=dataindex \
--set auth.password=dataindex123 \
--set auth.database=dataindex \
--set primary.persistence.enabled=false \
--wait --timeout=5m

- name: Initialize database schema
run: |
# Wait for PostgreSQL to be ready
kubectl wait --namespace postgresql \
--for=condition=ready pod \
--selector=app.kubernetes.io/name=postgresql \
--timeout=300s

# Copy migration SQL to pod
kubectl cp \
data-index/data-index-storage/data-index-storage-migrations/src/main/resources/db/migration/V1__initial_schema.sql \
postgresql/postgresql-0:/tmp/schema.sql

# Execute schema creation
kubectl exec -n postgresql postgresql-0 -- \
env PGPASSWORD=dataindex123 \
psql -U dataindex -d dataindex \
-f /tmp/schema.sql

# Verify tables created
echo "Verifying database schema..."
kubectl exec -n postgresql postgresql-0 -- \
env PGPASSWORD=dataindex123 \
psql -U dataindex -d dataindex \
-c '\dt'

- name: Deploy Data Index service
run: |
SKIP_IMAGE_BUILD=true SKIP_DB_INIT=true \
bash data-index/scripts/kind/deploy-data-index.sh postgresql-polling

- name: Deploy FluentBit
run: |
kubectl create namespace logging

# Generate ConfigMap from source files
cd data-index/scripts/fluentbit
./generate-configmap.sh mode1-postgresql-triggers mode1-postgresql-triggers/kubernetes/configmap.yaml
cd -

# Apply ConfigMap and DaemonSet
kubectl apply -f data-index/scripts/fluentbit/mode1-postgresql-triggers/kubernetes/configmap.yaml
kubectl apply -f data-index/scripts/fluentbit/mode1-postgresql-triggers/kubernetes/daemonset.yaml

# Wait for FluentBit to be ready
kubectl wait --namespace logging \
--for=condition=ready pod \
--selector=app=workflows-fluent-bit-mode1 \
--timeout=120s

- name: Deploy workflow test app
run: |
bash data-index/scripts/kind/deploy-workflow-app.sh

- name: Test workflow execution and GraphQL API
run: |
# Port forward data-index service
kubectl port-forward -n data-index svc/data-index-service 8080:8080 &
sleep 5

# Port forward workflow test app
kubectl port-forward -n workflows svc/workflow-test-app 8082:8080 &
sleep 5

# Execute a workflow
echo "Executing workflow..."
curl -X POST http://localhost:8082/test-workflows/simple-set \
-H "Content-Type: application/json" \
-d '{"test": "github-actions"}' \
--fail-with-body

# Wait for events to be processed
sleep 10

# Query GraphQL API
echo "Querying GraphQL API..."
RESPONSE=$(curl -s http://localhost:8080/graphql \
-H "Content-Type: application/json" \
-d '{"query":"{ getWorkflowInstances(limit: 1) { id name status inputData outputData } }"}')

echo "GraphQL Response: $RESPONSE"

# Verify response contains data
if ! echo "$RESPONSE" | grep -q '"data"'; then
echo "ERROR: GraphQL query failed"
echo "$RESPONSE"
exit 1
fi

# Verify workflow was created
if ! echo "$RESPONSE" | grep -q '"name":"simple-set"'; then
echo "ERROR: Workflow instance not found"
echo "$RESPONSE"
exit 1
fi

echo "✅ Integration tests passed!"

- name: Collect logs on failure
if: failure()
run: |
echo "=== PostgreSQL Logs ==="
kubectl logs -n postgresql -l app.kubernetes.io/name=postgresql --tail=100 || true

echo "=== Data Index Logs ==="
kubectl logs -n data-index -l app=data-index-service --tail=100 || true

echo "=== FluentBit Logs ==="
kubectl logs -n logging -l app=workflows-fluent-bit-mode1 --tail=100 || true

echo "=== Workflow App Logs ==="
kubectl logs -n workflows -l app=workflow-test-app --tail=100 || true

echo "=== Database Tables ==="
kubectl exec -n postgresql postgresql-0 -- \
env PGPASSWORD=dataindex123 \
psql -U dataindex -d dataindex -c '\dt' || true

echo "=== Raw Events Count ==="
kubectl exec -n postgresql postgresql-0 -- \
env PGPASSWORD=dataindex123 \
psql -U dataindex -d dataindex \
-c 'SELECT COUNT(*) FROM workflow_events_raw;' || true

- name: Cleanup
if: always()
run: |
kind delete cluster --name data-index-test || true
Loading
Loading