Files
biboumi/.woodpecker/docs.yaml
T
Luca Matei Pintilie d5e988cfdd feat: add documentation generation workflow
To fully automate deployment of documentation pages to codeberg pages a
woodpecker CI file containing the build instruction is made.

This needs to install all of biboumi's dependencies as to work with
cmake, then generate the makefiles, and finally the actual documentation
as HTML.

Once that's done, push everything to a `pages` branch.
2025-04-17 17:45:22 +02:00

53 lines
1.6 KiB
YAML

# Exclude page pipeline to be run on "pages" branch
when:
branch:
exclude: pages
event: [push, pull_request]
clone:
- name: git
image: woodpeckerci/plugin-git
settings:
partial: false
depth: 1
steps:
# Build sphinx static files
build:
image: docker.io/alpine:3.21
commands:
# Must install all of biboumi's dependencies to satisfy cmake
- apk add --no-cache --virtual .build py3-sphinx py3-sphinx_rtd_theme cmake expat-dev g++ git libidn-dev make postgresql-dev python3 sqlite-dev udns-dev util-linux-dev botan-dev
- mkdir -p build
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DWITH_BOTAN=1 -DWITH_SQLITE3=1 -DWITH_LIBIDN=1 -DWITH_POSTGRESQL=1
- make html
when:
event: [pull_request, push]
publish:
image: docker.io/bitnami/git
environment:
# secrets must be set in Woodpecker configuration
MAIL:
from_secret: mail
CODEBERG_TOKEN:
from_secret: codeberg_token
commands:
# Git configuration
- git config --global user.email $MAIL
- git config --global user.name "CI"
- git clone -b pages https://$CODEBERG_TOKEN@codeberg.org/$CI_REPO.git $CI_REPO_NAME
# Copy build step output to repository folder
- cp -ar build/html $CI_REPO_NAME/
# Needed for custom domains
- cp .domains $CI_REPO_NAME || true # Ignore if it doesn't exist
# Commit and push all static files with pipeline started timestamp
- cd $CI_REPO_NAME
- git add .
- git commit -m "CI ${CI_COMMIT_SHA}"
- git push
when:
event: push