@@ -29,123 +29,31 @@ jobs:
2929 with :
3030 python-version : ' 3.10'
3131
32+ - name : Add pipenv
33+ run : pip install pipenv
34+
3235 - name : Install doc build deps
3336 run : |
34- pipenv --python 3.10 install -e ".[dev]"
35- pipenv --python 3.10 install -e ".[data]" ".[ airflow]" ".[ aisystems]"
37+ pipenv --python 3.10 install ".[dev]"
38+ pipenv --python 3.10 install ".[data, airflow, aisystems]"
3639
3740 - name : Build multi-version docs
38- run : pipenv run sphinx-build -M html source docs_build
41+ run : |
42+ BRANCH=niole.DOM-70876.docs
43+ RELEASE_TAG_PATTERN=niole.DOM-70876.docs
44+
45+ git fetch origin
46+ git fetch origin --tags
47+
48+ pipenv run sphinx-multiversion source docs_build \
49+ -D smv_branch_whitelist=$BRANCH smv_released_pattern=$RELEASE_TAG_PATTERN
3950
4051 - name : Assemble site and landing page
4152 shell : bash
4253 run : |
4354 set -euo pipefail
4455 mkdir -p site
4556 rsync -a docs_build/html/ site/
46- # Determine latest branch dir (prefer main, else master)
47- LATEST_BRANCH=""
48- if [ -d site/main ]; then LATEST_BRANCH="main"; fi
49- if [ -z "$LATEST_BRANCH" ] && [ -d site/master ]; then LATEST_BRANCH="master"; fi
50- # Determine stable tag dir (prefer semantic v*, else Release-*)
51- STABLE_TAG=""
52- TAG_CANDIDATE=$(git tag -l | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n1 || true)
53- if [ -n "$TAG_CANDIDATE" ] && [ -d "site/$TAG_CANDIDATE" ]; then
54- STABLE_TAG="$TAG_CANDIDATE"
55- else
56- TAG_CANDIDATE=$(git tag -l | grep -E '^(Release|release)-[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n1 || true)
57- if [ -n "$TAG_CANDIDATE" ] && [ -d "site/$TAG_CANDIDATE" ]; then
58- STABLE_TAG="$TAG_CANDIDATE"
59- fi
60- fi
61- # Fallbacks if not found
62- [ -z "$LATEST_BRANCH" ] && LATEST_BRANCH="."
63- [ -z "$STABLE_TAG" ] && STABLE_TAG="$LATEST_BRANCH"
64- # Collect available versions (directories with an index.html)
65- BRANCHES=()
66- TAGS=()
67- for d in site/*; do
68- [ -d "$d" ] || continue
69- name=$(basename "$d")
70- [ -f "$d/index.html" ] || continue
71- if [ "$name" = "main" ] || [ "$name" = "master" ]; then
72- BRANCHES+=("$name")
73- elif echo "$name" | grep -Eq '^(v[0-9]+\.[0-9]+\.[0-9]+|(R|r)elease-[0-9]+\.[0-9]+\.[0-9]+)$'; then
74- TAGS+=("$name")
75- else
76- # Unknown grouping; treat as branch-like
77- BRANCHES+=("$name")
78- fi
79- done
80- # Sort tags in descending version order
81- if [ ${#TAGS[@]} -gt 0 ]; then
82- IFS=$'\n' TAGS=($(printf '%s\n' "${TAGS[@]}" | sort -Vr)); unset IFS
83- fi
84-
85- # Create a landing page linking to latest, stable, and all versions
86- cat > site/index.html <<HTML
87- <!doctype html>
88- <html lang="en">
89- <head>
90- <meta charset="utf-8">
91- <meta name="viewport" content="width=device-width, initial-scale=1">
92- <title>python-domino Documentation</title>
93- <style>
94- body { font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; padding: 2rem; color: #222; }
95- h1 { margin-bottom: .25rem; }
96- p.sub { color: #555; margin-top: 0; }
97- .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-top: 1rem; }
98- .card { border: 1px solid #e5e5e5; border-radius: 8px; padding: 1rem; }
99- .btn { display: inline-block; padding: .5rem .75rem; border-radius: 6px; text-decoration: none; color: #fff; background: #2c7be5; }
100- .btn.secondary { background: #6c757d; }
101- .muted { color: #666; font-size: .9em; }
102- .cols { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-top: 2rem; }
103- @media (min-width: 860px) { .cols { grid-template-columns: 1fr 1fr; } }
104- ul { margin: .5rem 0 0; padding-left: 1.25rem; }
105- </style>
106- </head>
107- <body>
108- <h1>python-domino Docs</h1>
109- <p class="sub">Browse the latest development docs, the latest stable release, or any specific version.</p>
110- <div class="grid">
111- <div class="card">
112- <h3>Latest</h3>
113- <p class="muted">Built from the default branch.</p>
114- <p><a class="btn" href="${LATEST_URL}">Open Latest</a></p>
115- </div>
116- <div class="card">
117- <h3>Stable</h3>
118- <p class="muted">Built from the most recent version tag.</p>
119- <p><a class="btn secondary" href="${STABLE_URL}">Open Stable</a></p>
120- </div>
121- </div>
122- <div class="cols">
123- <div class="card">
124- <h3>Branches</h3>
125- <ul>
126- HTML
127- for name in "${BRANCHES[@]}"; do
128- echo " <li><a href=\"${name}/\">${name}</a></li>" >> site/index.html
129- done
130- cat >> site/index.html <<'HTML'
131- </ul>
132- </div>
133- <div class="card">
134- <h3>Tags</h3>
135- <ul>
136- HTML
137- for name in "${TAGS[@]}"; do
138- echo " <li><a href=\"${name}/\">${name}</a></li>" >> site/index.html
139- done
140- cat >> site/index.html <<'HTML'
141- </ul>
142- </div>
143- </div>
144- <p class="muted">You can also switch versions from the menu on any docs page.</p>
145- </body>
146- </html>
147- HTML
148-
14957 - name : Configure Pages
15058 uses : actions/configure-pages@v5
15159
0 commit comments