diff --git a/.github/workflows/docs-versioning.yml b/.github/workflows/docs-versioning.yml new file mode 100644 index 000000000..2228ef5e2 --- /dev/null +++ b/.github/workflows/docs-versioning.yml @@ -0,0 +1,42 @@ +on: + push: + tags: + # 1. Include all semver‐style vX.Y.Z tags + - 'v*.*.*' + # 2. Exclude anything with "-rc." after the patch + - '!v*.*.*-rc.*' + +permissions: + contents: write + +jobs: + version-docs: + runs-on: ubuntu-latest + env: + VERSION: ${{ github.ref_name }} # picks up the tag, e.g. v0.3.0 + ALIAS: latest # your “latest” alias + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # ensures tags are available + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install mkdocs mike + - name: Build MkDocs site + run: mkdocs build --site-dir site + - name: Version with mike + run: | + mike deploy \ + --branch main \ + --push \ + --update-aliases $VERSION $ALIAS \ + site site-src + mike set-default \ + --branch main \ + --push \ + $ALIAS site-src + - name: Push versioned docs + run: git push origin main diff --git a/Makefile b/Makefile index d3eeaad09..6ed9fdfad 100644 --- a/Makefile +++ b/Makefile @@ -275,11 +275,6 @@ build-docs: docker build --pull -t gaie/mkdocs hack/mkdocs/image docker run --rm -v ${PWD}:/docs gaie/mkdocs build -.PHONY: build-docs-netlify -build-docs-netlify: - pip install -r hack/mkdocs/image/requirements.txt - python -m mkdocs build - .PHONY: live-docs live-docs: docker build -t gaie/mkdocs hack/mkdocs/image diff --git a/hack/mkdocs/image/entrypoint.sh b/hack/mkdocs/image/entrypoint.sh index 9e7accc0c..2c4dda319 100755 --- a/hack/mkdocs/image/entrypoint.sh +++ b/hack/mkdocs/image/entrypoint.sh @@ -25,4 +25,4 @@ then exit 0; fi -mkdocs serve --dev-addr=0.0.0.0:3000 --livereload \ No newline at end of file +mkdocs serve --dev-addr=0.0.0.0:3000 --livereload diff --git a/hack/mkdocs/image/requirements.txt b/hack/mkdocs/image/requirements.txt index e7cb9b0c6..7f5144c0f 100644 --- a/hack/mkdocs/image/requirements.txt +++ b/hack/mkdocs/image/requirements.txt @@ -23,3 +23,4 @@ mkdocs-material==9.5.36 mkdocs-material-extensions==1.3.1 mkdocs-redirects==1.2.1 mkdocs-mermaid2-plugin==1.1.1 +mike==2.1.3 diff --git a/mkdocs.yml b/mkdocs.yml index cc76400f6..39ecc1fdb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,13 @@ site_name: Kubernetes Gateway API Inference Extension repo_url: https://github.com/kubernetes-sigs/gateway-api-inference-extension repo_name: kubernetes-sigs/gateway-api-inference-extension +site_url: 'https://gateway-api-inference-extension.sigs.k8s.io/' site_dir: site docs_dir: site-src +extra: + version: + provider: mike + alias: true extra_css: - stylesheets/extra.css theme: @@ -22,6 +27,7 @@ theme: edit_uri: edit/main/site-src/ plugins: - search + - mike - awesome-pages - macros: j2_line_comment_prefix: "#$" diff --git a/netlify.toml b/netlify.toml index ff61e3bfc..154b6ea27 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,6 +1,7 @@ # netlify configuration [build] -publish = "site" -command = "make build-docs-netlify" -# available here https://github.com/netlify/build-image/blob/focal/included_software.md#languages -environment = { PYTHON_VERSION = "3.8" } \ No newline at end of file + command = "echo 'Nothing to build, docs are pre-generated by GitHub action!'" + publish = "site" + +[context.production] + branch = "main"