Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
e928493af3
commit
d5a1a14d63
2 changed files with 18 additions and 15 deletions
|
|
@ -23,12 +23,13 @@ jobs:
|
||||||
env:
|
env:
|
||||||
TOKEN: ${{ secrets.RELEASE }}
|
TOKEN: ${{ secrets.RELEASE }}
|
||||||
SITE_DIR: /tmp/site
|
SITE_DIR: /tmp/site
|
||||||
# URL publique du site. Elle ne sert qu'aux liens du menu de version :
|
# Préfixe de chemin sous lequel le site est servi. Vide = racine du
|
||||||
# ceux-ci sont concaténés au chemin de la page courante puis posés en
|
# domaine, ce qui couvre le cas courant et un serveur de test local.
|
||||||
# href, donc un chemin relatif y serait résolu par rapport à la page et
|
# À renseigner (par exemple /two) seulement si les pages sont publiées
|
||||||
# casserait selon la profondeur. Le switcher.json, lui, est référencé en
|
# sous un sous-chemin. Aucun nom d'hôte ici : les liens du menu de
|
||||||
# relatif et n'en dépend pas.
|
# version sont relatifs à l'origine, donc le site fonctionne à
|
||||||
DOCS_BASE_URL: https://syonad.g3e.fr/two
|
# l'identique en local et en production.
|
||||||
|
DOCS_BASE_PATH: ''
|
||||||
steps:
|
steps:
|
||||||
# fetch-depth: 0 — les tags et leur contenu sont nécessaires : chaque
|
# fetch-depth: 0 — les tags et leur contenu sont nécessaires : chaque
|
||||||
# version est construite depuis son propre ref.
|
# version est construite depuis son propre ref.
|
||||||
|
|
@ -71,7 +72,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
build () {
|
build () {
|
||||||
local ref="$1" src="$2"
|
local ref="$1" src="$2"
|
||||||
DOCS_BASE_URL="${DOCS_BASE_URL}" DOCS_VERSION="${ref}" \
|
DOCS_VERSION="${ref}" \
|
||||||
/tmp/venv/bin/sphinx-build -b html -W --keep-going \
|
/tmp/venv/bin/sphinx-build -b html -W --keep-going \
|
||||||
-d "/tmp/doctrees-${ref}" "${src}/docs" "${SITE_DIR}/${ref}"
|
-d "/tmp/doctrees-${ref}" "${src}/docs" "${SITE_DIR}/${ref}"
|
||||||
}
|
}
|
||||||
|
|
@ -92,22 +93,26 @@ jobs:
|
||||||
git worktree remove --force "/tmp/src-${version}"
|
git worktree remove --force "/tmp/src-${version}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Les liens du menu de version sont relatifs à l'origine : le thème les
|
||||||
|
# concatène au chemin de la page courante avant de les poser en href, si
|
||||||
|
# bien qu'un chemin relatif y serait résolu depuis la page et casserait
|
||||||
|
# selon sa profondeur. Une barre initiale les ancre à la racine du site,
|
||||||
|
# sans jamais nommer d'hôte.
|
||||||
- name: Assembler la racine du site
|
- name: Assembler la racine du site
|
||||||
run: |
|
run: |
|
||||||
# La version mise en avant est la dernière release finale, main sinon.
|
|
||||||
preferred="$(echo ${VERSIONS} | tr ' ' '\n' | head -1)"
|
preferred="$(echo ${VERSIONS} | tr ' ' '\n' | head -1)"
|
||||||
[ -n "${preferred}" ] || preferred="main"
|
[ -n "${preferred}" ] || preferred="main"
|
||||||
|
|
||||||
{
|
{
|
||||||
echo '['
|
echo '['
|
||||||
echo ' {"name": "dev (main)", "version": "main", "url": "'"${DOCS_BASE_URL}"'/main/"},'
|
echo ' {"name": "dev (main)", "version": "main", "url": "'"${DOCS_BASE_PATH}"'/main/"},'
|
||||||
first=1
|
first=1
|
||||||
for version in ${VERSIONS}
|
for version in ${VERSIONS}
|
||||||
do
|
do
|
||||||
[ -d "${SITE_DIR}/${version}" ] || continue
|
[ -d "${SITE_DIR}/${version}" ] || continue
|
||||||
[ ${first} -eq 1 ] && suffix=', "preferred": true' || suffix=''
|
[ ${first} -eq 1 ] && suffix=', "preferred": true' || suffix=''
|
||||||
first=0
|
first=0
|
||||||
echo ' {"name": "'"${version}"'", "version": "'"${version}"'", "url": "'"${DOCS_BASE_URL}"'/'"${version}"'/"'"${suffix}"'},'
|
echo ' {"name": "'"${version}"'", "version": "'"${version}"'", "url": "'"${DOCS_BASE_PATH}"'/'"${version}"'/"'"${suffix}"'},'
|
||||||
done
|
done
|
||||||
} | sed '$ s/,$//' > "${SITE_DIR}/switcher.json"
|
} | sed '$ s/,$//' > "${SITE_DIR}/switcher.json"
|
||||||
echo ']' >> "${SITE_DIR}/switcher.json"
|
echo ']' >> "${SITE_DIR}/switcher.json"
|
||||||
|
|
@ -124,7 +129,6 @@ jobs:
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>two — documentation</title>
|
<title>two — documentation</title>
|
||||||
<meta http-equiv="refresh" content="0; url=./${preferred}/">
|
<meta http-equiv="refresh" content="0; url=./${preferred}/">
|
||||||
<link rel="canonical" href="${DOCS_BASE_URL}/${preferred}/">
|
|
||||||
</head>
|
</head>
|
||||||
<body><p><a href="./${preferred}/">Documentation de two</a></p></body>
|
<body><p><a href="./${preferred}/">Documentation de two</a></p></body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,8 @@ html_copy_source = False
|
||||||
html_show_sourcelink = False
|
html_show_sourcelink = False
|
||||||
|
|
||||||
# Le sélecteur de version est piloté par le workflow de publication : hors CI
|
# Le sélecteur de version est piloté par le workflow de publication : hors CI
|
||||||
# ces variables sont absentes, le sélecteur n'apparaît pas, et le build ne
|
# la variable est absente, le sélecteur n'apparaît pas, et le build ne dépend
|
||||||
# dépend d'aucun réseau.
|
# d'aucun réseau.
|
||||||
_docs_base_url = os.environ.get('DOCS_BASE_URL')
|
|
||||||
_docs_version = os.environ.get('DOCS_VERSION')
|
_docs_version = os.environ.get('DOCS_VERSION')
|
||||||
|
|
||||||
html_theme_options = {
|
html_theme_options = {
|
||||||
|
|
@ -70,7 +69,7 @@ html_theme_options = {
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
if _docs_base_url and _docs_version:
|
if _docs_version:
|
||||||
html_theme_options['switcher'] = {
|
html_theme_options['switcher'] = {
|
||||||
# Chemin relatif volontairement : le thème le résout contre la racine
|
# Chemin relatif volontairement : le thème le résout contre la racine
|
||||||
# de la version courante, donc toujours dans la même origine que la
|
# de la version courante, donc toujours dans la même origine que la
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue