1+ name : Build and Deploy Docs
2+
3+ on :
4+ push :
5+ branches : [main]
6+ paths :
7+ - ' docs/**'
8+ - ' src/**/*.py'
9+ - ' .github/workflows/docs.yml'
10+
11+ # Allow manual triggering of the workflow
12+ workflow_dispatch :
13+
14+ jobs :
15+ build :
16+ runs-on : ubuntu-latest
17+
18+ steps :
19+ - uses : actions/checkout@v3
20+
21+ - name : Set up Python
22+ uses : actions/setup-python@v4
23+ with :
24+ python-version : ' 3.11'
25+
26+ - name : Install Poetry
27+ uses : snok/install-poetry@v1
28+ with :
29+ version : 1.5.1
30+ virtualenvs-create : true
31+
32+ - name : Install dependencies
33+ run : |
34+ poetry install
35+ poetry add mkdocs mkdocs-material mkdocstrings[python] mkdocs-gen-files
36+
37+ - name : Build docs
38+ run : |
39+ mkdir -p docs
40+ # Generate docs from docstrings if they don't exist yet
41+ if [ ! -f docs/index.md ]; then
42+ echo "# OpenAI Model Registry" > docs/index.md
43+ echo "" >> docs/index.md
44+ echo "Documentation generated from docstrings." >> docs/index.md
45+ fi
46+ # Create mkdocs.yml if it doesn't exist
47+ if [ ! -f mkdocs.yml ]; then
48+ echo "site_name: OpenAI Model Registry" > mkdocs.yml
49+ echo "theme: material" >> mkdocs.yml
50+ echo "plugins:" >> mkdocs.yml
51+ echo " - search" >> mkdocs.yml
52+ echo " - mkdocstrings:" >> mkdocs.yml
53+ echo " handlers:" >> mkdocs.yml
54+ echo " python:" >> mkdocs.yml
55+ echo " selection:" >> mkdocs.yml
56+ echo " docstring_style: google" >> mkdocs.yml
57+ fi
58+ poetry run mkdocs build
59+
60+ - name : Deploy to GitHub Pages
61+ uses : peaceiris/actions-gh-pages@v3
62+ if : github.ref == 'refs/heads/main'
63+ with :
64+ github_token : ${{ secrets.GITHUB_TOKEN }}
65+ publish_dir : ./site
0 commit comments