Skip to content

Merge pull request #1713 from sbadakhc/issue-1697/document-agent-traps #227

Merge pull request #1713 from sbadakhc/issue-1697/document-agent-traps

Merge pull request #1713 from sbadakhc/issue-1697/document-agent-traps #227

name: Integration Tests
on:
push:
branches:
- "main"
- "dev"
pull_request:
branches:
- "main"
- "dev"
workflow_dispatch:
schedule:
# Run nightly at 2 AM UTC (off-peak hours)
- cron: '0 2 * * *'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
compose-validation:
name: Docker Compose Validation
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Set up Docker
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
- name: Validate Compose Files
run: |
echo "Validating Docker Compose files..."
# Create minimal .env with required vars for validation
cat > .env << 'EOF'
INFERENCE_ENGINE=ollama
PROFILE=sys
POSTGRES_USER=admin
POSTGRES_PASSWORD=test
POSTGRES_DATABASE=webui
PGADMIN_EMAIL=admin@example.com
PGADMIN_PASSWORD=test
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=test
OLLAMA_HOST=0.0.0.0:11434
OLLAMA_NUM_PARALLEL=8
OLLAMA_MAX_LOADED_MODELS=3
OLLAMA_KEEP_ALIVE=1800
OLLAMA_NUM_GPU=1
OLLAMA_NUM_THREAD=8
EOF
# Validate main compose file
docker compose -f services/docker-compose.yml config > /dev/null || exit 1
echo "✓ Main compose file valid"
# Check compose override files by combining with main compose
# Override files (gpu.yml, arm.yml) require main compose for complete validation
for file in services/docker-compose.*.yml; do
if [ -f "$file" ]; then
docker compose -f services/docker-compose.yml -f "$file" config > /dev/null || exit 1
echo "✓ $(basename $file) valid"
fi
done
echo "All compose files validated successfully"
- name: Test Engine Configuration
run: |
echo "Testing engine configuration..."
# Create minimal .env
echo "INFERENCE_ENGINE=ollama" > .env
echo "PROFILE=sys" >> .env
# Test engine set commands
chmod +x ./aixcl
# Test the supported engine
./aixcl engine set ollama
grep -q "INFERENCE_ENGINE=ollama" .env || exit 1
echo "✓ Engine ollama configured"
# Test auto-detect
./aixcl engine auto
echo "✓ Engine auto-detect works"
echo "Engine configuration tests PASSED"
- name: Test Stack Configuration
run: |
echo "Testing stack configuration..."
# Create minimal .env
echo "INFERENCE_ENGINE=ollama" > .env
echo "PROFILE=sys" >> .env
# Validate stack configs without starting
./aixcl stack status 2>/dev/null || true
echo "✓ Stack configuration validated"
echo "Stack configuration tests PASSED"