Publier la documentation de Chill en ligne après chaque mise à jour (#14)
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:
parent
f531de0351
commit
4c330d7b87
94
.gitea/workflows/build-and-push-mkdocs-docker-image.yml
Normal file
94
.gitea/workflows/build-and-push-mkdocs-docker-image.yml
Normal 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
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
build/*
|
||||
*-manual.pdf
|
||||
.venv/
|
||||
|
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal 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
|
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal 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
17
.idea/manuals.iml
generated
Normal 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
6
.idea/misc.xml
generated
Normal 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
8
.idea/modules.xml
generated
Normal 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
9
.idea/vcs.xml
generated
Normal 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
1
CODEOWNERS
Normal file
@ -0,0 +1 @@
|
||||
.gitea/workflows/.* @julienfastre @juminet @LenaertsJ
|
23
Dockerfile
Normal file
23
Dockerfile
Normal 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
1
admin/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
site/*
|
@ -140,7 +140,7 @@ Par exemple, pour un courrier généré dans un contexte "parcours", l'utilisate
|
||||
|
||||
## Variables par contexte
|
||||
|
||||
### Pour tous les contextes { #sec:gendoc:champs-documents }
|
||||
### Pour tous les contextes { #sec:gendoc-champs-documents }
|
||||
|
||||
#### Variables
|
||||
|
3
admin/docs/index.md
Normal file
3
admin/docs/index.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Documentation administrateur
|
||||
|
||||
En construction.
|
43
admin/mkdocs.yml
Normal file
43
admin/mkdocs.yml
Normal 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
|
@ -4,7 +4,8 @@ set -e
|
||||
|
||||
# enter the current directory
|
||||
cd "$(dirname $0)"
|
||||
export PANDOC_DIR="/pandoc/cl"
|
||||
export PANDOC_DIR="$(pwd)/pandoc/cl"
|
||||
export OUTPUT_DIR="$(pwd)"
|
||||
|
||||
|
||||
if [ -z $1 ]; then
|
||||
@ -59,23 +60,22 @@ else
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
cd $kind
|
||||
export PDF_TEMPLATE="$(pwd)/eisvogel.latex"
|
||||
|
||||
cd $kind/docs
|
||||
|
||||
export ARGS="
|
||||
--from markdown
|
||||
--number-sections
|
||||
--resource-path ./.
|
||||
--metadata-file ./metadata.yaml
|
||||
`#--lua-filter "../${PANDOC_DIR}/format-link.lua`
|
||||
"
|
||||
export PDF_TEMPLATE="./../pandoc/template/eisvogel.tex"
|
||||
export LATEX_ARGS="
|
||||
--metadata=footer-left:$(date +%d-%m-%Y)
|
||||
--template "${PDF_TEMPLATE}"
|
||||
--lua-filter "../${PANDOC_DIR}/boxes.lua"
|
||||
--template ${PDF_TEMPLATE}
|
||||
--lua-filter "${PANDOC_DIR}/boxes.lua"
|
||||
"
|
||||
|
||||
|
||||
if [ $target = "latex" ]; then
|
||||
pandoc $ARGS $LATEX_ARGS \
|
||||
--to latex \
|
||||
@ -84,18 +84,7 @@ elif [ $target = "pdf" ]; then
|
||||
pandoc $ARGS $LATEX_ARGS \
|
||||
--to pdf \
|
||||
--pdf-engine xelatex \
|
||||
-o "./../$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 \
|
||||
-o "${OUTPUT_DIR}/$kind-manual.pdf" \
|
||||
$files
|
||||
fi
|
||||
|
||||
|
1037
eisvogel.latex
Normal file
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
3
requirements.txt
Normal file
@ -0,0 +1,3 @@
|
||||
mkdocs
|
||||
markdown-include
|
||||
mkdocs-material
|
2
user/.gitignore
vendored
Normal file
2
user/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
site/*
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user