Publier la documentation de Chill en ligne après chaque mise à jour (#14)
Some checks failed
continuous-integration/drone/push Build is failing
Build and Push MkDocs Docker Image / build-and-push (push) Successful in 2m40s

Reviewed-on: #14
Co-authored-by: Julien Fastré <julien.fastre@champs-libres.coop>
Co-committed-by: Julien Fastré <julien.fastre@champs-libres.coop>
This commit is contained in:
Julien Fastré 2025-06-30 16:16:24 +00:00 committed by Julien Fastré
parent f531de0351
commit 4c330d7b87
128 changed files with 1345 additions and 22 deletions

View File

@ -0,0 +1,94 @@
name: Build and Push MkDocs Docker Image
on:
push:
branches:
- main
- master
paths:
- 'Dockerfile'
- 'user/**'
- 'admin/**'
- '.gitea/workflows/**'
workflow_dispatch:
jobs:
build-and-push:
runs-on: cth-ubuntu-latest
env:
REGISTRY: ${{ vars.REGISTRY }}
IMAGE: ${{ vars.IMAGE }}
IMAGE_NAME: ${{ vars.REGISTRY }}/${{ vars.IMAGE }}:${{ github.sha }}
KUBE_CA: ${{ vars.KUBE_CA }}
KUBE_SERVER: ${{ vars.KUBE_SERVER }}
REGISTRY_USERNAME: ${{ vars.REGISTRY_USERNAME }}
NAMESPACE: ${{ vars.NAMESPACE }}
DEPLOYMENT_NAME: ${{ vars.DEPLOYMENT_NAME }}
CONTAINER: ${{ vars.CONTAINER }}
steps:
- name: Checkout code
uses: https://github.com/actions/checkout@v4
- name: Set up Docker Buildx
uses: https://github.com/docker/setup-buildx-action@v3
- name: Log in to Docker registry
uses: https://github.com/docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and push
id: build-push
uses: https://github.com/docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
tags: '${{ env.IMAGE_NAME }}'
- name: Install kubectl
run: |
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
- name: Set up kubeconfig
env:
KUBE_SERVER: ${{ env.KUBE_SERVER }} # e.g. https://<API_ENDPOINT>
KUBE_CA: ${{ env.KUBE_CA }} # base64 encoded, or fetched via kubectl config view
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }} # Token generated via 'kubectl create token'
run: |
mkdir -p ~/.kube
cat <<EOF > ~/.kube/config
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
server: "$KUBE_SERVER"
certificate-authority-data: "$KUBE_CA"
contexts:
- name: default-context
context:
cluster: default-cluster
user: gitea-actions
current-context: default-context
users:
- name: gitea-actions
user:
token: "$KUBE_TOKEN"
EOF
- name: Patch Deployment Image
env:
NAMESPACE: ${{ env.NAMESPACE }}
DEPLOYMENT: ${{ env.DEPLOYMENT_NAME }}
CONTAINER: ${{ env.CONTAINER }}
run: |
echo "deploy new tag: $TAG_IMAGE"
env
kubectl -n ${NAMESPACE} set image deployment/${DEPLOYMENT} ${CONTAINER}=${IMAGE_NAME}

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
build/* build/*
*-manual.pdf *-manual.pdf
.venv/

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

17
.idea/manuals.iml generated Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.10 (manuals)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/pandoc/cl/templates" />
</list>
</option>
</component>
</module>

6
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10 (manuals)" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/manuals.iml" filepath="$PROJECT_DIR$/.idea/manuals.iml" />
</modules>
</component>
</project>

9
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pandoc/cl" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pandoc/template" vcs="Git" />
</component>
</project>

1
CODEOWNERS Normal file
View File

@ -0,0 +1 @@
.gitea/workflows/.* @julienfastre @juminet @LenaertsJ

23
Dockerfile Normal file
View File

@ -0,0 +1,23 @@
# -------- Stage 1: Build the documentation using mkdocs --------
FROM python:3.13-slim AS builder
WORKDIR /build
# Install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY user/ user/
COPY admin/ admin/
RUN ls
RUN cd user && mkdocs build --clean && cd ..
RUN cd admin && mkdocs build --clean && cd ..
# -------- Stage 2: Serve the built documentation with nginx --------
FROM nginx:alpine
# Copy the built site from the builder stage
COPY --from=builder /build/admin/site /usr/share/nginx/html/admin
COPY --from=builder /build/user/site /usr/share/nginx/html/user

1
admin/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
site/*

View File

@ -140,7 +140,7 @@ Par exemple, pour un courrier généré dans un contexte "parcours", l'utilisate
## Variables par contexte ## Variables par contexte
### Pour tous les contextes { #sec:gendoc:champs-documents } ### Pour tous les contextes { #sec:gendoc-champs-documents }
#### Variables #### Variables

3
admin/docs/index.md Normal file
View File

@ -0,0 +1,3 @@
# Documentation administrateur
En construction.

43
admin/mkdocs.yml Normal file
View File

@ -0,0 +1,43 @@
---
site_name: "Manuel admnistrateur Chill"
site_url: https://manuel.chill.social/admin
repo_url: https://gitea.champs-libres.be/Chill-project/manuals
repo_name: Chill-project/manuals
theme:
name: material
features:
- content.code.copy
- content.code.select
- content.code.annotate
nav:
- Accueil: index.md
- Génération de document: generation-documents.md
markdown_extensions:
- markdown_include.include
# code layout
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
use_pygments: true
linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
# admonition
- admonition
- pymdownx.details
- pymdownx.superfences
# use emojis
- attr_list
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
# footnotes
- footnotes
# https://squidfunk.github.io/mkdocs-material/reference/formatting/?h=key#adding-keyboard-keys
- pymdownx.critic
- pymdownx.caret
- pymdownx.keys
- pymdownx.mark
- pymdownx.tilde

View File

@ -4,7 +4,8 @@ set -e
# enter the current directory # enter the current directory
cd "$(dirname $0)" cd "$(dirname $0)"
export PANDOC_DIR="/pandoc/cl" export PANDOC_DIR="$(pwd)/pandoc/cl"
export OUTPUT_DIR="$(pwd)"
if [ -z $1 ]; then if [ -z $1 ]; then
@ -59,23 +60,22 @@ else
exit 1; exit 1;
fi fi
cd $kind export PDF_TEMPLATE="$(pwd)/eisvogel.latex"
cd $kind/docs
export ARGS=" export ARGS="
--from markdown --from markdown
--number-sections --number-sections
--resource-path ./. --resource-path ./.
--metadata-file ./metadata.yaml --metadata-file ./metadata.yaml
`#--lua-filter "../${PANDOC_DIR}/format-link.lua`
" "
export PDF_TEMPLATE="./../pandoc/template/eisvogel.tex"
export LATEX_ARGS=" export LATEX_ARGS="
--metadata=footer-left:$(date +%d-%m-%Y) --metadata=footer-left:$(date +%d-%m-%Y)
--template "${PDF_TEMPLATE}" --template ${PDF_TEMPLATE}
--lua-filter "../${PANDOC_DIR}/boxes.lua" --lua-filter "${PANDOC_DIR}/boxes.lua"
" "
if [ $target = "latex" ]; then if [ $target = "latex" ]; then
pandoc $ARGS $LATEX_ARGS \ pandoc $ARGS $LATEX_ARGS \
--to latex \ --to latex \
@ -84,18 +84,7 @@ elif [ $target = "pdf" ]; then
pandoc $ARGS $LATEX_ARGS \ pandoc $ARGS $LATEX_ARGS \
--to pdf \ --to pdf \
--pdf-engine xelatex \ --pdf-engine xelatex \
-o "./../$kind-manual.pdf" \ -o "${OUTPUT_DIR}/$kind-manual.pdf" \
$files
elif [ $target = "html" ]; then
# check target directory exists
if [ ! -d "./../build/html" ]; then
echo "create build/html directory"
mkdir -p "./../build/html"
fi
pandoc $ARGS \
--to html \
-o ./../build/html/index.html \
$files $files
fi fi

1037
eisvogel.latex Normal file

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
Subproject commit 04e329698d01c3a25aa72ad81d98483284669316 Subproject commit 62377f36a0ce5b48281e5ee51cb4eef364162037

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
mkdocs
markdown-include
mkdocs-material

2
user/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
site/*

Some files were not shown because too many files have changed in this diff Show More