feat: publish docs without version (mc mirror overwrite) + site_url per stand

This commit is contained in:
“Naeel”
2026-09-02 18:36:55 +03:00
parent 211143980c
commit dc469c6dce
2 changed files with 16 additions and 8 deletions
+10 -2
View File
@@ -64,7 +64,7 @@ if [[ -z "$VERSION" ]]; then
exit 2 exit 2
fi fi
REGISTRY_HOST="${REGISTRY_HOST:-tf-registry.containerk8s.services.ngcloud.ru}" REGISTRY_HOST="${REGISTRY_HOST:-tf-docs.nodejsk8s.dev.nubes.ru}"
NAMESPACE="${NAMESPACE:-nubes}" NAMESPACE="${NAMESPACE:-nubes}"
PROVIDER_NAME="${PROVIDER_NAME:-nubes}" PROVIDER_NAME="${PROVIDER_NAME:-nubes}"
export REGISTRY_HOST NAMESPACE PROVIDER_NAME VERSION export REGISTRY_HOST NAMESPACE PROVIDER_NAME VERSION
@@ -187,13 +187,21 @@ cfg_path = root_dir / "mkdocs.yml"
text = cfg_path.read_text(encoding="utf-8") text = cfg_path.read_text(encoding="utf-8")
text = re.sub( text = re.sub(
r"^site_url:\s*.*$", r"^site_url:\s*.*$",
f"site_url: https://{registry_host}/docs/{namespace}/{name}/{version}/", f"site_url: https://{registry_host}/{namespace}/",
text, text,
flags=re.M, flags=re.M,
) )
docs_dir = os.environ.get("MKDOCS_DOCS_DIR", "").strip() docs_dir = os.environ.get("MKDOCS_DOCS_DIR", "").strip()
if docs_dir: if docs_dir:
# Относительный docs_dir: работает и на хосте (сборка из ROOT_DIR), и в docker (/docs).
if os.path.isabs(docs_dir):
try:
rel = os.path.relpath(docs_dir, os.environ.get("ROOT_DIR", os.path.sep))
if not rel.startswith(".."):
docs_dir = rel
except ValueError:
pass
if re.search(r"^docs_dir:\s*.*$", text, flags=re.M): if re.search(r"^docs_dir:\s*.*$", text, flags=re.M):
text = re.sub(r"^docs_dir:\s*.*$", f"docs_dir: {docs_dir}", text, flags=re.M) text = re.sub(r"^docs_dir:\s*.*$", f"docs_dir: {docs_dir}", text, flags=re.M)
else: else:
+6 -6
View File
@@ -2,13 +2,13 @@
set -euo pipefail set -euo pipefail
# Заливка собранного MkDocs-сайта (site/) в S3-реестр (bucket terraform-registry). # Заливка собранного MkDocs-сайта (site/) в S3-реестр (bucket terraform-registry).
# Без версии: docs/<namespace>/<name>/ — перезаписывается (mc mirror).
# Usage: publish-docs.sh <site-dir> <registry-host> <namespace> <name> <version> # Usage: publish-docs.sh <site-dir> <registry-host> <namespace> <name>
SITE_DIR=${1:-site} SITE_DIR=${1:-site}
REGISTRY_HOST=${2:-tf-registry.containerk8s.services.ngcloud.ru} REGISTRY_HOST=${2:-tf-registry.containerk8s.services.ngcloud.ru}
NAMESPACE=${3:-nubes} NAMESPACE=${3:-nubes}
NAME=${4:-nubes} NAME=${4:-nubes}
VERSION=${5:-dev}
# Support both S3_* (New Standard) and MINIO_* (Legacy) variables # Support both S3_* (New Standard) and MINIO_* (Legacy) variables
ENDPOINT=${S3_ENDPOINT:-${MINIO_ENDPOINT:-}} ENDPOINT=${S3_ENDPOINT:-${MINIO_ENDPOINT:-}}
@@ -22,11 +22,11 @@ fi
MC_ALIAS=registry MC_ALIAS=registry
mc alias set $MC_ALIAS "$ENDPOINT" "$ACCESS_KEY" "$SECRET_KEY" --api S3v4 mc alias set $MC_ALIAS "$ENDPOINT" "$ACCESS_KEY" "$SECRET_KEY" --api S3v4
TARGET="${MC_ALIAS}/terraform-registry/docs/${NAMESPACE}/${NAME}/${VERSION}/" TARGET="${MC_ALIAS}/terraform-registry/docs/${NAMESPACE}/${NAME}/"
# mc создаёт промежуточные каталоги неявно при копировании # Перезапись + удаление лишнего (без версии)
mc cp --recursive "$SITE_DIR/" "$TARGET" mc mirror --overwrite --remove "$SITE_DIR/" "$TARGET"
# Публичная политика на бакет # Публичная политика на бакет
mc policy set public "$TARGET" || true mc policy set public "$TARGET" || true
echo "Published docs to: https://${REGISTRY_HOST}/docs/${NAMESPACE}/${NAME}/${VERSION}/" echo "Published docs to: https://${REGISTRY_HOST}/${NAMESPACE}/"