From f7905b4943c92ce76115d698e838a72c3043cbee Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 5 Sep 2022 14:46:55 -0400 Subject: [PATCH] docs: add code for building docs in ci --- .dockerignore | 2 ++ Makefile | 1 + docs.mk | 19 ++++++++++++++++++ docs/_build/Dockerfile | 12 ++++++++++++ docs/_build/entrypoint | 38 ++++++++++++++++++++++++++++++++++++ docs/_build/requirements.txt | 23 ++++++++++++++++++++++ 6 files changed, 95 insertions(+) create mode 100644 docs.mk create mode 100644 docs/_build/Dockerfile create mode 100755 docs/_build/entrypoint create mode 100644 docs/_build/requirements.txt diff --git a/.dockerignore b/.dockerignore index fb38043ca..7cab72b98 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,6 +7,8 @@ build docs tests !build/package/* +!docs/_build/entrypoint +!docs/_build/requirements.txt !tests/dhparam.pem !contrib/bash-completion !contrib/docker diff --git a/Makefile b/Makefile index cd792b016..e4da07db5 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,7 @@ include common.mk .PHONY: all apt-update install version copyfiles copyplugin man-db plugins dependencies docker-image-labeler lambda-builder netrc sshcommand procfile-util plugn docker aufs stack count vagrant-acl-add vagrant-dokku go-build +include docs.mk include tests.mk include package.mk include deb.mk diff --git a/docs.mk b/docs.mk new file mode 100644 index 000000000..2231448da --- /dev/null +++ b/docs.mk @@ -0,0 +1,19 @@ +.PHONY: docs-build-image +docs-build-image: + docker build -f docs/_build/Dockerfile --progress plain -t app/mkdocs . + +.PHONY: docs-build +docs-build: + docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/source" --name docs-serve app/mkdocs build + +.PHONY: docs-serve +docs-serve: + docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/source" --name docs-serve app/mkdocs serve + +.PHONY: docs-deps +docs-deps: + @docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/app" app/mkdocs deps + +.PHONY: docs-enter +docs-enter: + docker exec -it docs-serve bash diff --git a/docs/_build/Dockerfile b/docs/_build/Dockerfile new file mode 100644 index 000000000..4c233db37 --- /dev/null +++ b/docs/_build/Dockerfile @@ -0,0 +1,12 @@ +FROM python:3.10-alpine + +WORKDIR /usr/src/app + +COPY docs/_build/requirements.txt . + +RUN apk add --no-cache bash yaml && \ + pip install --no-cache-dir -r requirements.txt + +COPY docs/_build/entrypoint /bin/entrypoint + +ENTRYPOINT [ "/bin/entrypoint" ] diff --git a/docs/_build/entrypoint b/docs/_build/entrypoint new file mode 100755 index 000000000..2cf2adf22 --- /dev/null +++ b/docs/_build/entrypoint @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +set -eo pipefail + +write-mkdocs() { + if [[ -f /usr/src/source/contrib/write-mkdocs ]]; then + if ! python /usr/src/source/contrib/write-mkdocs; then + exit 0 + fi + fi +} + +main() { + declare CMD="$1" ARGS=("${@:2}") + + if [[ "$CMD" == "build" ]]; then + write-mkdocs + mkdocs build + site_dir="$(grep site_dir mkdocs.yml | awk '{print $2}')" + cp -r "/usr/src/app/${site_dir}" "/usr/src/source/${site_dir}" + + return $? + fi + + if [[ "$CMD" == "deps" ]]; then + pip freeze + return $? + fi + + if [[ "$CMD" == "serve" ]]; then + write-mkdocs + mkdocs serve -a 0.0.0.0:3487 + return $? + fi + + "$CMD" "${ARGS[@]}" +} + +main "$@" diff --git a/docs/_build/requirements.txt b/docs/_build/requirements.txt new file mode 100644 index 000000000..4868546aa --- /dev/null +++ b/docs/_build/requirements.txt @@ -0,0 +1,23 @@ +beautifulsoup4==4.11.1 +click==8.1.3 +ghp-import==2.1.0 +importlib-metadata==4.12.0 +Jinja2==3.1.2 +Markdown==3.3.7 +MarkupSafe==2.1.1 +mergedeep==1.3.4 +mkdocs==1.3.1 +mkdocs-material==8.4.2 +mkdocs-material-extensions==1.0.3 +packaging==21.3 +Pygments==2.13.0 +pymdown-extensions==9.5 +pyparsing==3.0.9 +python-dateutil==2.8.2 +PyYAML==6.0 +pyyaml_env_tag==0.1 +six==1.16.0 +soupsieve==2.3.2.post1 +watchdog==2.1.9 +zipp==3.8.1 +mkdocs-exclude