Skip to content

Merge pull request #1704 from sbadakhc/issue-1703/fix-opencode-agent-ids #169

Merge pull request #1704 from sbadakhc/issue-1703/fix-opencode-agent-ids

Merge pull request #1704 from sbadakhc/issue-1703/fix-opencode-agent-ids #169

name: Documentation Checks
permissions:
contents: read
on:
push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check-paths:
name: Check Documentation Paths
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Run path validation
run: |
chmod +x ./scripts/checks/check-paths.sh
./scripts/checks/check-paths.sh
check-generated-files:
name: Check for Generated Files
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Run generated file check
run: |
chmod +x ./scripts/checks/check-generated-files.sh
./scripts/checks/check-generated-files.sh
check-markdown-links:
name: Check Markdown Links
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Check for broken links
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2
with:
args: --exclude-all-private --require-https --timeout 30 --retry-wait-time 5 --max-retries 3
fail: true
continue-on-error: true
check-yaml-syntax:
name: Validate YAML Syntax
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Install yamllint
run: pip install yamllint==1.38.0
- name: Validate YAML files
run: |
yamllint -c .yamllint.yml .
validate-compose-files:
name: Validate Docker Compose Files
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v7.0.0
- name: Set up Docker
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
- name: Create minimal .env for validation
run: |
cat > .env << 'EOF'
# Core configuration
INFERENCE_ENGINE=ollama
PROFILE=sys
# PostgreSQL configuration
POSTGRES_USER=admin
POSTGRES_PASSWORD=test
POSTGRES_DATABASE=webui
# PGAdmin configuration
PGADMIN_EMAIL=admin@example.com
PGADMIN_PASSWORD=test
# Open WebUI configuration
OPENAI_API_KEY=
ENABLE_OLLAMA_API=true
OLLAMA_BASE_URL=http://localhost:11434
# Grafana configuration
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
# Ollama configuration
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
- name: Validate main compose file
run: |
docker compose -f services/docker-compose.yml config > /dev/null || exit 1
echo "Main compose file valid"
- name: Validate additional compose files
run: |
# Validate override files by combining with main compose file
# Override files (gpu.yml, arm.yml) only contain partial service definitions
for file in services/docker-compose.*.yml; do
if [ -f "$file" ]; then
# Combine main compose with override file to validate complete config
docker compose -f services/docker-compose.yml -f "$file" config > /dev/null || exit 1
echo "Validated: $(basename $file)"
fi
done
echo "All compose override files validated successfully"
- name: Cleanup
run: rm -f .env