summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2023-05-19 22:44:42 -0700
committerAnastasia Klimchuk <aklm@chromium.org>2023-05-23 09:15:04 +0000
commit5c8469953b7551470a7664b3a083fe248a91457f (patch)
tree80329c53b179cf111f8ec2da61348af952dac590
parentf15e6a105b1cf589476042e62b8d0bb64a938e38 (diff)
downloadflashrom-5c8469953b7551470a7664b3a083fe248a91457f.tar.gz
flashrom-5c8469953b7551470a7664b3a083fe248a91457f.tar.bz2
flashrom-5c8469953b7551470a7664b3a083fe248a91457f.zip
util: Add docker to automate creation of documentation
Build with: docker build --force-rm -t "doc.flashrom.org" \ "$PWD/util/docker/flashrom.org/" Generate HTML files: mkdir -p "$PWD/doc/_build/" docker run -it --rm \ --user "$(id -u):$(id -g)" \ -v "$PWD/:/data-in/:ro" \ -v "$PWD/doc/_build/:/data-out/" \ doc.flashrom.org Live web server: docker run -it --rm \ --net=host -v "$PWD/:/data-in/:ro" \ doc.flashrom.org livehtml Change-Id: I889fa5f98e2fd6ef896ba4bb30aa5d985ff82622 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/75344 Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Tested-by: Anastasia Klimchuk <aklm@chromium.org>
-rw-r--r--util/docker/flashrom.org/Dockerfile29
-rw-r--r--util/docker/flashrom.org/README.md32
-rwxr-xr-xutil/docker/flashrom.org/ditaa.sh2
-rwxr-xr-xutil/docker/flashrom.org/makeSphinx.sh12
4 files changed, 75 insertions, 0 deletions
diff --git a/util/docker/flashrom.org/Dockerfile b/util/docker/flashrom.org/Dockerfile
new file mode 100644
index 000000000..23f5f5040
--- /dev/null
+++ b/util/docker/flashrom.org/Dockerfile
@@ -0,0 +1,29 @@
+FROM alpine:3.8
+
+COPY makeSphinx.sh /makeSphinx.sh
+
+ADD https://sourceforge.net/projects/ditaa/files/ditaa/0.9/ditaa0_9.zip/download /tmp/ditaa.zip
+
+RUN apk add --no-cache python3 make bash git openjdk8-jre ttf-dejavu fontconfig \
+ && pip3 install --upgrade --no-cache-dir pip \
+ && pip3 install --no-cache-dir \
+ sphinx===1.8.3 \
+ sphinx_rtd_theme===0.4.2 \
+ recommonmark===0.5.0 \
+ sphinx_autobuild===0.7.1 \
+ sphinxcontrib-ditaa===0.6 \
+ && chmod 755 /makeSphinx.sh
+RUN cd /tmp \
+ && unzip ditaa.zip \
+ && mv ditaa0_9.jar /usr/lib
+ADD ditaa.sh /usr/bin/ditaa
+
+VOLUME /data-in /data-out
+
+# For Sphinx-autobuild
+# Port 8000 - HTTP server
+# Port 35729 - websockets connection to allow automatic browser reloads after each build
+EXPOSE 8000 35729
+
+ENTRYPOINT ["/bin/bash", "/makeSphinx.sh"]
+CMD []
diff --git a/util/docker/flashrom.org/README.md b/util/docker/flashrom.org/README.md
new file mode 100644
index 000000000..313d0d768
--- /dev/null
+++ b/util/docker/flashrom.org/README.md
@@ -0,0 +1,32 @@
+# doc.coreboot.org
+ Docker container for generating and developing documentation for doc.coreboot.org
+
+**NOTE**: All paths are from the base of the coreboot git repo.
+
+### Build
+
+```sh
+ docker build --force-rm -t "doc.flashrom.org" "$PWD/util/docker/flashrom.org/"
+```
+
+### Generating production HTML
+
+```sh
+# To ensure the output directory is given the correct permissions, make sure to
+# created it before running docker the first time.
+mkdir -p "$PWD/doc/_build/"
+
+docker run -it --rm \
+ --user "$(id -u):$(id -g)" \
+ -v "$PWD/:/data-in/:ro" \
+ -v "$PWD/doc/_build/:/data-out/" \
+ doc.flashrom.org
+```
+
+### live reloaded with web server
+On the host machine, open a browser to the address http://0.0.0.0:8000
+```sh
+docker run -it --rm \
+ --net=host -v "$PWD/:/data-in/:ro" \
+ doc.flashrom.org livehtml
+```
diff --git a/util/docker/flashrom.org/ditaa.sh b/util/docker/flashrom.org/ditaa.sh
new file mode 100755
index 000000000..637379f3e
--- /dev/null
+++ b/util/docker/flashrom.org/ditaa.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+exec java -jar /usr/lib/ditaa0_9.jar $*
diff --git a/util/docker/flashrom.org/makeSphinx.sh b/util/docker/flashrom.org/makeSphinx.sh
new file mode 100755
index 000000000..5b6ea0386
--- /dev/null
+++ b/util/docker/flashrom.org/makeSphinx.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+if [ "$1" == "livehtml" ]; then
+ echo "Starting live documentation build"
+ cd /data-in/ && sphinx-autobuild -b html doc /tmp/build/html
+else
+ echo "Starting production documentation build"
+ cd /data-in/ \
+ && sphinx-build -b html doc /tmp/build/html \
+ && rm -rf /data-out/* \
+ && mv /tmp/build/html/* /data-out/
+fi