4141 asset_files : ${{ steps.build-docs.outputs.asset_files }}
4242 image_files : ${{ steps.build-docs.outputs.image_files }}
4343 warning_count : ${{ steps.build-docs.outputs.warning_count }}
44- coverage_percentage : ${{ steps.coverage.outputs.coverage_percentage }}
45- linkcheck_status : ${{ steps.linkcheck.outputs.linkcheck_status }}
4644 steps :
4745 - name : π Checkout repository
4846 uses : actions/checkout@v4
9492 echo "" >> $GITHUB_STEP_SUMMARY
9593
9694 # Build with detailed output and capture both stdout and stderr
97- if poetry run sphinx-build -W - b html source build/html 2>&1 | tee build.log; then
95+ if poetry run sphinx-build -b html source build/html 2>&1 | tee build.log; then
9896 echo "β
**Build Status**: Success" >> $GITHUB_STEP_SUMMARY
9997 echo "build_status=success" >> $GITHUB_OUTPUT
10098 else
@@ -134,134 +132,17 @@ jobs:
134132 echo "asset_files=$asset_count" >> $GITHUB_OUTPUT
135133 echo "image_files=$image_count" >> $GITHUB_OUTPUT
136134
137- # Check for warnings
135+ # Check for warnings (but don't fail on them)
138136 if grep -i "warning" build.log > /dev/null; then
139137 warning_count=$(grep -c -i "warning" build.log)
140138 echo "β οΈ **Warnings**: $warning_count found" >> $GITHUB_STEP_SUMMARY
141139 echo "warning_count=$warning_count" >> $GITHUB_OUTPUT
142-
143- # Show warnings in collapsible section
144- echo "" >> $GITHUB_STEP_SUMMARY
145- echo "<details>" >> $GITHUB_STEP_SUMMARY
146- echo "<summary>β οΈ View Warnings ($warning_count)</summary>" >> $GITHUB_STEP_SUMMARY
147- echo "" >> $GITHUB_STEP_SUMMARY
148- echo '```' >> $GITHUB_STEP_SUMMARY
149- grep -i "warning" build.log >> $GITHUB_STEP_SUMMARY
150- echo '```' >> $GITHUB_STEP_SUMMARY
151- echo "" >> $GITHUB_STEP_SUMMARY
152- echo "</details>" >> $GITHUB_STEP_SUMMARY
153140 else
154141 echo "β
**Warnings**: None" >> $GITHUB_STEP_SUMMARY
155142 echo "warning_count=0" >> $GITHUB_OUTPUT
156143 fi
157144
158- - name : π Generate coverage reports
159- id : coverage
160- run : |
161- echo "" >> $GITHUB_STEP_SUMMARY
162- echo "## π Documentation Coverage" >> $GITHUB_STEP_SUMMARY
163- echo "" >> $GITHUB_STEP_SUMMARY
164-
165- # Install interrogate for documentation coverage
166- poetry add --group dev interrogate
167-
168- # Run coverage integration script and capture output
169- if poetry run python scripts/coverage_integration.py run 2>&1 | tee coverage.log; then
170- echo "β
**Coverage Analysis**: Completed" >> $GITHUB_STEP_SUMMARY
171-
172- # Extract coverage percentage if available
173- if grep -o "[0-9]*%" coverage.log > /dev/null; then
174- coverage_pct=$(grep -o "[0-9]*%" coverage.log | tail -1)
175- echo "π **Overall Coverage**: $coverage_pct" >> $GITHUB_STEP_SUMMARY
176- echo "coverage_percentage=$coverage_pct" >> $GITHUB_OUTPUT
177- else
178- echo "π **Overall Coverage**: Not available" >> $GITHUB_STEP_SUMMARY
179- echo "coverage_percentage=unknown" >> $GITHUB_OUTPUT
180- fi
181-
182- # Add coverage details in collapsible section
183- echo "" >> $GITHUB_STEP_SUMMARY
184- echo "<details>" >> $GITHUB_STEP_SUMMARY
185- echo "<summary>π View Coverage Details</summary>" >> $GITHUB_STEP_SUMMARY
186- echo "" >> $GITHUB_STEP_SUMMARY
187- echo '```' >> $GITHUB_STEP_SUMMARY
188- cat coverage.log >> $GITHUB_STEP_SUMMARY
189- echo '```' >> $GITHUB_STEP_SUMMARY
190- echo "" >> $GITHUB_STEP_SUMMARY
191- echo "</details>" >> $GITHUB_STEP_SUMMARY
192- else
193- echo "β οΈ **Coverage Analysis**: Failed" >> $GITHUB_STEP_SUMMARY
194- echo "coverage_percentage=failed" >> $GITHUB_OUTPUT
195- fi
196-
197- # Copy coverage reports to build directory
198- if [ -f "docs/build/coverage-report.md" ]; then
199- cp docs/build/coverage-report.md docs/build/html/coverage-report.html
200- echo "π [Coverage Report](./coverage-report.html) available in built docs" >> $GITHUB_STEP_SUMMARY
201- fi
202-
203- - name : π Setup versioning
204- if : github.ref == 'refs/heads/main' && github.event_name == 'push'
205- run : |
206- # Get current version and add to documentation
207- poetry run python scripts/docs_versioning.py current --auto-add
208-
209- # Create version selector
210- poetry run python scripts/docs_versioning.py create-selector
211-
212- echo "" >> $GITHUB_STEP_SUMMARY
213- echo "## π Versioning" >> $GITHUB_STEP_SUMMARY
214- echo "β
Version information added to documentation" >> $GITHUB_STEP_SUMMARY
215-
216- - name : π Check external links
217- id : linkcheck
218- run : |
219- cd docs
220- echo "" >> $GITHUB_STEP_SUMMARY
221- echo "## π Link Validation" >> $GITHUB_STEP_SUMMARY
222- echo "" >> $GITHUB_STEP_SUMMARY
223-
224- if poetry run sphinx-build -b linkcheck source build/linkcheck 2>&1 | tee linkcheck.log; then
225- echo "β
**Link Check**: Passed" >> $GITHUB_STEP_SUMMARY
226- echo "linkcheck_status=success" >> $GITHUB_OUTPUT
227- else
228- echo "β οΈ **Link Check**: Some issues found" >> $GITHUB_STEP_SUMMARY
229- echo "linkcheck_status=warning" >> $GITHUB_OUTPUT
230-
231- # Show broken links in collapsible section
232- echo "" >> $GITHUB_STEP_SUMMARY
233- echo "<details>" >> $GITHUB_STEP_SUMMARY
234- echo "<summary>π View Link Check Results</summary>" >> $GITHUB_STEP_SUMMARY
235- echo "" >> $GITHUB_STEP_SUMMARY
236- echo '```' >> $GITHUB_STEP_SUMMARY
237- cat linkcheck.log >> $GITHUB_STEP_SUMMARY
238- echo '```' >> $GITHUB_STEP_SUMMARY
239- echo "" >> $GITHUB_STEP_SUMMARY
240- echo "</details>" >> $GITHUB_STEP_SUMMARY
241- fi
242- continue-on-error : true # Don't fail the build on broken external links
243-
244- - name : π Generate final summary
245- run : |
246- echo "" >> $GITHUB_STEP_SUMMARY
247- echo "## π― Summary" >> $GITHUB_STEP_SUMMARY
248- echo "" >> $GITHUB_STEP_SUMMARY
249-
250- # Summary table
251- echo "| Check | Status |" >> $GITHUB_STEP_SUMMARY
252- echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
253- echo "| ποΈ Build | ${{ steps.build-docs.outputs.build_status == 'success' && 'β
Success' || 'β Failed' }} |" >> $GITHUB_STEP_SUMMARY
254- echo "| π Coverage | ${{ steps.coverage.outputs.coverage_percentage != 'failed' && 'β
Complete' || 'β οΈ Issues' }} |" >> $GITHUB_STEP_SUMMARY
255- echo "| π Links | ${{ steps.linkcheck.outputs.linkcheck_status == 'success' && 'β
Valid' || 'β οΈ Issues' }} |" >> $GITHUB_STEP_SUMMARY
256- echo "" >> $GITHUB_STEP_SUMMARY
257-
258- if [ "${{ github.ref }}" == "refs/heads/main" ] && [ "${{ github.event_name }}" == "push" ]; then
259- echo "π **Next Step**: Documentation will be deployed to GitHub Pages" >> $GITHUB_STEP_SUMMARY
260- elif [ "${{ github.event_name }}" == "pull_request" ]; then
261- echo "π **Next Step**: Download preview artifact to review changes" >> $GITHUB_STEP_SUMMARY
262- fi
263-
264- - name : π Setup Pages
145+ - name : οΏ½ Setup Pages
265146 if : github.ref == 'refs/heads/main' && github.event_name == 'push'
266147 uses : actions/configure-pages@v4
267148
@@ -279,74 +160,22 @@ jobs:
279160 path : docs/build/html
280161 retention-days : 7
281162
282- # Quality checks
283- quality :
284- runs-on : ubuntu-latest
285- needs : build
286- if : github.event_name == 'pull_request'
287- steps :
288- - name : π Checkout repository
289- uses : actions/checkout@v4
290-
291- - name : π Set up Python
292- uses : actions/setup-python@v5
293- with :
294- python-version : ' 3.10'
295-
296- - name : π¦ Install Poetry
297- uses : snok/install-poetry@v1
298-
299- - name : π Install dependencies
300- run : poetry install --with docs
301-
302- - name : π Check documentation coverage
163+ - name : π Generate final summary
303164 run : |
304- echo "## π Quality Checks" >> $GITHUB_STEP_SUMMARY
165+ echo "" >> $GITHUB_STEP_SUMMARY
166+ echo "## π― Summary" >> $GITHUB_STEP_SUMMARY
305167 echo "" >> $GITHUB_STEP_SUMMARY
306168
307- # Install interrogate if not already installed
308- poetry add --group dev interrogate
309-
310- # Use the coverage integration script
311- if poetry run python scripts/coverage_integration.py run; then
312- echo "β
**Coverage Check**: Passed" >> $GITHUB_STEP_SUMMARY
313- else
314- echo "β οΈ **Coverage Check**: Issues found" >> $GITHUB_STEP_SUMMARY
315- fi
316-
317- - name : π― Validate MyST syntax
318- run : |
319- cd docs
320- echo "π― **MyST Syntax Validation**: Starting..." >> $GITHUB_STEP_SUMMARY
321-
322- # Simple MyST validation
323- validation_passed=true
324- for file in $(find source -name "*.md"); do
325- if ! poetry run python -c "
326- import sys
327- try:
328- with open('$file', 'r', encoding='utf-8') as f:
329- content = f.read()
330- # Basic validation - check for balanced code blocks
331- if content.count('\`\`\`') % 2 != 0:
332- print(f'Unbalanced code blocks in $file')
333- sys.exit(1)
334- print(f'β
$file - MyST syntax OK')
335- except Exception as e:
336- print(f'β $file - Error: {e}')
337- sys.exit(1)
338- "; then
339- echo "β
$(basename $file)" >> $GITHUB_STEP_SUMMARY
340- else
341- echo "β $(basename $file)" >> $GITHUB_STEP_SUMMARY
342- validation_passed=false
343- fi
344- done
169+ # Summary table
170+ echo "| Check | Status |" >> $GITHUB_STEP_SUMMARY
171+ echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
172+ echo "| ποΈ Build | ${{ steps.build-docs.outputs.build_status == 'success' && 'β
Success' || 'β Failed' }} |" >> $GITHUB_STEP_SUMMARY
173+ echo "" >> $GITHUB_STEP_SUMMARY
345174
346- if [ "$validation_passed " = true ]; then
347- echo "β
**MyST Syntax **: All files valid " >> $GITHUB_STEP_SUMMARY
348- else
349- echo "β οΈ **MyST Syntax **: Some files have issues " >> $GITHUB_STEP_SUMMARY
175+ if [ "${{ github.ref }} " == "refs/heads/main" ] && [ "${{ github.event_name }}" == "push" ]; then
176+ echo "π **Next Step **: Documentation will be deployed to GitHub Pages " >> $GITHUB_STEP_SUMMARY
177+ elif [ "${{ github.event_name }}" == "pull_request" ]; then
178+ echo "π **Next Step **: Download preview artifact to review changes " >> $GITHUB_STEP_SUMMARY
350179 fi
351180
352181 # Deploy to GitHub Pages
@@ -361,30 +190,16 @@ jobs:
361190 - name : π Deploy to GitHub Pages
362191 id : deployment
363192 uses : actions/deploy-pages@v4
364-
365- # Final notification with complete summary
366- notify :
367- runs-on : ubuntu-latest
368- needs : [build, deploy]
369- if : always() && github.ref == 'refs/heads/main' && github.event_name == 'push'
370- steps :
371- - name : π’ Final deployment summary
193+
194+ - name : π’ Deployment summary
372195 run : |
373196 echo "## π Deployment Complete" >> $GITHUB_STEP_SUMMARY
374197 echo "" >> $GITHUB_STEP_SUMMARY
375-
376- if [ "${{ needs.deploy.result }}" == "success" ]; then
377- echo "β
**Deployment Status**: Success" >> $GITHUB_STEP_SUMMARY
378- echo "π **Live URL**: ${{ needs.deploy.outputs.page_url }}" >> $GITHUB_STEP_SUMMARY
379- echo "" >> $GITHUB_STEP_SUMMARY
380- echo "### π Build Results" >> $GITHUB_STEP_SUMMARY
381- echo "- π HTML files generated: ${{ needs.build.outputs.html_files }}" >> $GITHUB_STEP_SUMMARY
382- echo "- οΏ½ Assets: ${{ needs.build.outputs.asset_files }}" >> $GITHUB_STEP_SUMMARY
383- echo "- πΌοΈ Images: ${{ needs.build.outputs.image_files }}" >> $GITHUB_STEP_SUMMARY
384- echo "- β οΈ Warnings: ${{ needs.build.outputs.warning_count }}" >> $GITHUB_STEP_SUMMARY
385- echo "- π Coverage: ${{ needs.build.outputs.coverage_percentage }}" >> $GITHUB_STEP_SUMMARY
386- else
387- echo "β **Deployment Status**: Failed" >> $GITHUB_STEP_SUMMARY
388- echo "π Check the deploy job logs for details" >> $GITHUB_STEP_SUMMARY
389- exit 1
390- fi
198+ echo "β
**Deployment Status**: Success" >> $GITHUB_STEP_SUMMARY
199+ echo "π **Live URL**: ${{ steps.deployment.outputs.page_url }}" >> $GITHUB_STEP_SUMMARY
200+ echo "" >> $GITHUB_STEP_SUMMARY
201+ echo "### π Build Results" >> $GITHUB_STEP_SUMMARY
202+ echo "- π HTML files generated: ${{ needs.build.outputs.html_files }}" >> $GITHUB_STEP_SUMMARY
203+ echo "- π¨ Assets: ${{ needs.build.outputs.asset_files }}" >> $GITHUB_STEP_SUMMARY
204+ echo "- πΌοΈ Images: ${{ needs.build.outputs.image_files }}" >> $GITHUB_STEP_SUMMARY
205+ echo "- β οΈ Warnings: ${{ needs.build.outputs.warning_count }}" >> $GITHUB_STEP_SUMMARY
0 commit comments