-
Notifications
You must be signed in to change notification settings - Fork 10
149 lines (126 loc) · 4.17 KB
/
Copy pathdocumentation-checks.yml
File metadata and controls
149 lines (126 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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.35.1
- 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
- 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
INFERENCE_MODEL=Qwen/Qwen2.5-Coder-0.5B-Instruct-GGUF/qwen2.5-coder-0.5b-instruct-q4_k_m.gguf
# vLLM configuration
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
VLLM_CUDA_GRAPH_CAPTURE=0
VLLM_MODEL=Qwen/Qwen2.5-Coder-0.5B-Instruct
VLLM_GPU_MEMORY_UTILIZATION=0.8
VLLM_MAX_MODEL_LEN=32768
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