Merge pull request #1729 from sbadakhc/issue-1728/extend-image-pin-check #234
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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" |