This commit creates a comprehensive documentation publishing system that combines coverage reports, Python API docs, and project documentation into a unified GitHub Pages site. Changes: - Update coverage-nightly.yaml to support workflow_call trigger - Update python-docs-nightly.yaml to support workflow_call trigger - Add docs-nightly.yaml workflow for project documentation - Add publish-site.yaml orchestrator workflow The publish-site workflow: - Triggers all three documentation workflows in parallel - Collects artifacts from each workflow - Organizes them into a unified site structure: - / (root) - Beautiful landing page with navigation - /docs/ - Project documentation - /python/ - Python API reference (pdoc3) - /coverage/ - Code coverage reports - Deploys to GitHub Pages with proper permissions - Runs nightly at 5 AM UTC, after all other workflows complete Each workflow can be: - Triggered manually via workflow_dispatch - Called from other workflows via workflow_call - Run on schedule (coverage: 2 AM, python-docs: 3 AM, docs: 4 AM) The site includes: - Modern, responsive landing page with gradient design - Navigation cards for each documentation section - 404 error page - .nojekyll file to prevent Jekyll processing - Automatic timestamp updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Changelog-None
61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
name: Python API Docs (Nightly)
|
|
|
|
on:
|
|
schedule:
|
|
# Run at 3 AM UTC every day
|
|
- cron: '0 3 * * *'
|
|
# Allow manual triggers for testing
|
|
workflow_dispatch:
|
|
# Allow being called from other workflows
|
|
workflow_call:
|
|
|
|
concurrency:
|
|
group: python-docs-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
generate-docs:
|
|
name: Generate Python API Documentation
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.10
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.10"
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
uv sync --all-extras
|
|
|
|
- name: Generate documentation
|
|
run: |
|
|
make python-docs
|
|
|
|
- name: Upload documentation artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: python-api-docs
|
|
path: docs/python
|
|
retention-days: 90
|
|
|
|
- name: Add summary to job
|
|
run: |
|
|
echo "## Python API Documentation Generated" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "📚 Documentation has been generated for the following packages:" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "- pyln.client - Client library and plugin library" >> $GITHUB_STEP_SUMMARY
|
|
echo "- pyln.proto - Lightning Network protocol implementation" >> $GITHUB_STEP_SUMMARY
|
|
echo "- pyln.grpc - gRPC protocol definitions" >> $GITHUB_STEP_SUMMARY
|
|
echo "- pyln.testing - Testing utilities" >> $GITHUB_STEP_SUMMARY
|
|
echo "- pyln.spec.bolt7 - BOLT #7 specification implementation" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "Download the artifact to view the complete API documentation." >> $GITHUB_STEP_SUMMARY
|