Compare commits

...

2 commits

Author SHA1 Message Date
4ee40cdcc1
add dockerfile and build action for docs
All checks were successful
Build Antora Docs / build (push) Successful in 31s
2025-03-10 15:54:35 +01:00
53b7ee2a54
initial Antora boilerplate 2025-03-10 09:23:18 +01:00
7 changed files with 149 additions and 0 deletions

View file

@ -0,0 +1,38 @@
name: Build Antora Docs
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.CONTAINER_REGISTRY }}
username: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: docs/Dockerfile
push: true
tags: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_NAME_DOCS }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max

54
Makefile Normal file
View file

@ -0,0 +1,54 @@
pages := $(shell find . -type f -name '*.adoc')
web_dir := ./_public
# Determine whether to use podman
#
# podman currently fails when executing in GitHub actions on Ubuntu LTS 20.04,
# so we never use podman if GITHUB_ACTIONS==true.
use_podman := $(shell command -v podman 2>&1 >/dev/null; p="$$?"; \
if [ "$${GITHUB_ACTIONS}" != "true" ]; then echo "$$p"; else echo 1; fi)
ifeq ($(use_podman),0)
engine_cmd ?= podman
engine_opts ?= --rm --tty --userns=keep-id
else
engine_cmd ?= docker
engine_opts ?= --rm --tty --user "$$(id -u)"
endif
# renovate: datasource=github-releases depName=vshn/antora
antora_VERSION ?= 3.1.2.3
antora_cmd ?= $(engine_cmd) run $(engine_opts) --volume "$${PWD}":/antora ghcr.io/vshn/antora:$(antora_VERSION)
# renovate: datasource=github-releases depName=vshn/antora-preview
preview_VERSION ?= 3.1.2.3
antora_opts ?= --cache-dir=.cache/antora
preview_cmd ?= $(engine_cmd) run --rm --publish 35729:35729 --publish 2020:2020 --volume "${PWD}":/preview/antora ghcr.io/vshn/antora-preview:$(preview_VERSION) --antora=docs --style=vshn
UNAME := $(shell uname)
ifeq ($(UNAME), Linux)
OS = linux-x64
OPEN = xdg-open
endif
ifeq ($(UNAME), Darwin)
OS = darwin-x64
OPEN = open
endif
.PHONY: docs-clean
clean:
rm -rf $(web_dir) .cache
.PHONY: docs-open
docs-open: $(web_dir)/index.html
-$(OPEN) $<
.PHONY: docs-html
docs-html: $(web_dir)/index.html
.PHONY: docs-preview
docs-preview:
$(preview_cmd)
$(web_dir)/index.html: playbook.yml $(pages)
$(antora_cmd) $(antora_opts) $<

14
docs/Dockerfile Normal file
View file

@ -0,0 +1,14 @@
# ---------- STEP 1 ----------
# Build the documentation in web format
FROM ghcr.io/vshn/antora:master AS antora
WORKDIR /build
COPY . /build
RUN make docs-html antora_cmd=antora antora_opts=--fetch
# ---------- STEP 2 ----------
# Docker image only containing nginx and the freshly built documentation
FROM ghcr.io/vshn/nginx:latest
# Finally, copy the contents of the documentation to be served
COPY --from=antora /build/_public /usr/share/nginx/html

6
docs/antora.yml Normal file
View file

@ -0,0 +1,6 @@
name: ROOT
title: Servala Documentation
version: ~
start_page: ROOT:index.adoc
nav:
- modules/ROOT/nav.adoc

View file

@ -0,0 +1 @@
* xref:index.adoc[Home]

View file

@ -0,0 +1,3 @@
= Servala
Hello World

33
playbook.yml Normal file
View file

@ -0,0 +1,33 @@
site:
title: Servala
url: https://docs.servala.com/
start_page: servaka::index.adoc
robots: |
User-agent: *
Allow: *
content:
sources:
- url: https://servala-2nkgm.app.codey.ch/servala/servala-portal.git
branches: ["main"]
start_path: docs
edit_url: "https://servala-2nkgm.app.codey.ch/servala/servala-portal/_edit/main/{path}"
ui:
bundle:
url: https://github.com/vshn/antora-ui-default/releases/download/2.2.6/ui-bundle.zip
snapshot: true
asciidoc:
attributes:
page-pagination: ""
hide-uri-scheme: ""
experimental: ""
stem: ""
icons: font
kroki-server-url: https://kroki.vshn.net
kroki-fetch-diagram: ""
extensions:
- asciidoctor-kroki
output:
destinations:
- provider: fs
path: ./_public
clean: true