diff --git a/biblio.html b/biblio.html index 772efc7..c14a382 100644 --- a/biblio.html +++ b/biblio.html @@ -96,16 +96,6 @@ ul.task-list li input[type="checkbox"] { Posts - -
diff --git a/fr/biblio.html b/fr/biblio.html index 4f0f7b8..94c4400 100644 --- a/fr/biblio.html +++ b/fr/biblio.html @@ -1,5 +1,5 @@ - + @@ -53,17 +53,17 @@ ul.task-list li input[type="checkbox"] { ], "show-item-context": false, "language": { - "search-no-results-text": "No results", - "search-matching-documents-text": "matching documents", - "search-copy-link-title": "Copy link to search", - "search-hide-matches-text": "Hide additional matches", - "search-more-match-text": "more match in this document", - "search-more-matches-text": "more matches in this document", - "search-clear-button-title": "Clear", + "search-no-results-text": "Pas de résultats", + "search-matching-documents-text": "documents trouvés", + "search-copy-link-title": "Copier le lien vers la recherche", + "search-hide-matches-text": "Cacher les correspondances additionnelles", + "search-more-match-text": "correspondance de plus dans ce document", + "search-more-matches-text": "correspondances de plus dans ce document", + "search-clear-button-title": "Effacer", "search-text-placeholder": "", - "search-detached-cancel-button-title": "Cancel", - "search-submit-button-title": "Submit", - "search-label": "Search" + "search-detached-cancel-button-title": "Annuler", + "search-submit-button-title": "Envoyer", + "search-label": "Recherche" } } @@ -82,8 +82,8 @@ ul.task-list li input[type="checkbox"] { Louis Lacoste
- -
@@ -189,12 +185,12 @@ window.document.addEventListener("DOMContentLoaded", function (event) { // flash "checked" button.classList.add('code-copy-button-checked'); var currentTitle = button.getAttribute("title"); - button.setAttribute("title", "Copied!"); + button.setAttribute("title", "Copié"); let tooltip; if (window.bootstrap) { button.setAttribute("data-bs-toggle", "tooltip"); button.setAttribute("data-bs-placement", "left"); - button.setAttribute("data-bs-title", "Copied!"); + button.setAttribute("data-bs-title", "Copié"); tooltip = new bootstrap.Tooltip(button, { trigger: "manual", customClass: "code-copy-button-tooltip", diff --git a/fr/index.html b/fr/index.html index 6ba55de..900b219 100644 --- a/fr/index.html +++ b/fr/index.html @@ -1,5 +1,5 @@ - + @@ -56,17 +56,17 @@ ul.task-list li input[type="checkbox"] { ], "show-item-context": false, "language": { - "search-no-results-text": "No results", - "search-matching-documents-text": "matching documents", - "search-copy-link-title": "Copy link to search", - "search-hide-matches-text": "Hide additional matches", - "search-more-match-text": "more match in this document", - "search-more-matches-text": "more matches in this document", - "search-clear-button-title": "Clear", + "search-no-results-text": "Pas de résultats", + "search-matching-documents-text": "documents trouvés", + "search-copy-link-title": "Copier le lien vers la recherche", + "search-hide-matches-text": "Cacher les correspondances additionnelles", + "search-more-match-text": "correspondance de plus dans ce document", + "search-more-matches-text": "correspondances de plus dans ce document", + "search-clear-button-title": "Effacer", "search-text-placeholder": "", - "search-detached-cancel-button-title": "Cancel", - "search-submit-button-title": "Submit", - "search-label": "Search" + "search-detached-cancel-button-title": "Annuler", + "search-submit-button-title": "Envoyer", + "search-label": "Recherche" } } @@ -85,8 +85,8 @@ ul.task-list li input[type="checkbox"] { Louis Lacoste
- -
@@ -193,12 +189,12 @@ window.document.addEventListener("DOMContentLoaded", function (event) { // flash "checked" button.classList.add('code-copy-button-checked'); var currentTitle = button.getAttribute("title"); - button.setAttribute("title", "Copied!"); + button.setAttribute("title", "Copié"); let tooltip; if (window.bootstrap) { button.setAttribute("data-bs-toggle", "tooltip"); button.setAttribute("data-bs-placement", "left"); - button.setAttribute("data-bs-title", "Copied!"); + button.setAttribute("data-bs-title", "Copié"); tooltip = new bootstrap.Tooltip(button, { trigger: "manual", customClass: "code-copy-button-tooltip", diff --git a/fr/interests.html b/fr/interests.html index a9a51bf..671676c 100644 --- a/fr/interests.html +++ b/fr/interests.html @@ -1,5 +1,5 @@ - + @@ -53,17 +53,17 @@ ul.task-list li input[type="checkbox"] { ], "show-item-context": false, "language": { - "search-no-results-text": "No results", - "search-matching-documents-text": "matching documents", - "search-copy-link-title": "Copy link to search", - "search-hide-matches-text": "Hide additional matches", - "search-more-match-text": "more match in this document", - "search-more-matches-text": "more matches in this document", - "search-clear-button-title": "Clear", + "search-no-results-text": "Pas de résultats", + "search-matching-documents-text": "documents trouvés", + "search-copy-link-title": "Copier le lien vers la recherche", + "search-hide-matches-text": "Cacher les correspondances additionnelles", + "search-more-match-text": "correspondance de plus dans ce document", + "search-more-matches-text": "correspondances de plus dans ce document", + "search-clear-button-title": "Effacer", "search-text-placeholder": "", - "search-detached-cancel-button-title": "Cancel", - "search-submit-button-title": "Submit", - "search-label": "Search" + "search-detached-cancel-button-title": "Annuler", + "search-submit-button-title": "Envoyer", + "search-label": "Recherche" } } @@ -82,8 +82,8 @@ ul.task-list li input[type="checkbox"] { Louis Lacoste
- -
@@ -119,7 +115,7 @@ ul.task-list li input[type="checkbox"] { - -
@@ -167,7 +162,7 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
-
Author
+
Auteur·rice
Affiliation
@@ -184,16 +179,16 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
-
Published
+
Date de publication
-

September 23, 2025

+

23 septembre 2025

-
Modified
+
Modifié
-

October 1, 2025

+

6 octobre 2025

@@ -205,7 +200,7 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin + fi

Détaillons ce qu’il s’y passe !

@@ -327,7 +322,7 @@ Important # Branche cible pour les PDF (modifiable via CI/CD variables) PDF_BRANCH: "pdf" - FILE_NAMES: 2024-2025-rapport-csi 2024-2025-presentation-csi
+ FILE_NAMES: 2024-2025-rapport-csi 2024-2025-presentation-csi
@@ -119,7 +115,7 @@ ul.task-list li input[type="checkbox"] {
diff --git a/interests.html b/interests.html index 14d7786..aef581a 100644 --- a/interests.html +++ b/interests.html @@ -96,16 +96,6 @@ ul.task-list li input[type="checkbox"] { Posts - -
diff --git a/posts.html b/posts.html index eb9c237..2724439 100644 --- a/posts.html +++ b/posts.html @@ -170,16 +170,6 @@ window.Quarto = { Posts - -
@@ -222,7 +212,7 @@ window.Quarto = {
-
+
@@ -193,7 +183,7 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin
Modified
-

October 1, 2025

+

October 6, 2025

@@ -208,12 +198,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin

On this page

@@ -225,9 +215,9 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin

-
-

La CI finale

-

Voici le contenu d’un de mes fichier .gitlab-ci.yaml

+
+

The Final CI

+

Here is the content of one of my .gitlab-ci.yaml files

@@ -238,7 +228,7 @@ Important
-

Si vous voyez des incohérences, contactez-moi par mail : louis.lacoste@agroparistech.fr

+

If you see any inconsistencies, contact me by email: louis.lacoste@agroparistech.fr

@@ -314,11 +304,11 @@ Important echo "No PDF changes to commit" fi
-

Détaillons ce qu’il s’y passe !

+

Let’s break down what happens!

-
-

Les variables

-

La section variables ci-dessous sert à définir des variables auxquelles nous ferons référence plus tard.

+
+

Variables

+

The variables section below is used to define variables that we will reference later.

variables:
   # Version de git utilisée
@@ -330,16 +320,16 @@ Important
   FILE_NAMES: 2024-2025-rapport-csi 2024-2025-presentation-csi
    -
  • GIT_VERSION : spécifie la version de git à utiliser pour l’image Docker que l’on va récupérer.
  • -
  • PDF_BRANCH : indique le nom de la branche sur laquelle nos PDF seront publiés.
  • -
  • FILE_NAMES : déclare la liste des noms de fichiers (sans les extensions). Au format yaml donc des chaînes de caractères sans guillemets séparés par des espaces
  • +
  • GIT_VERSION: specifies the git version to use for the Docker image we’re going to fetch.
  • +
  • PDF_BRANCH: indicates the name of the branch on which our PDFs will be published.
  • +
  • FILE_NAMES: declares the list of file names (without extensions). In yaml format, these are strings without quotes separated by spaces
-
-

Les étapes

-
-

La phase de compilation build_tex

-

Nous allons détailler l’étape build_tex :

+
+

The Steps

+
+

The compilation phase build_tex

+

Let’s detail the build_tex step:

build_tex:
   stage: build
@@ -369,27 +359,27 @@ Important
     paths:
       - "*.pdf"
-

On déclare tout d’abord le stage: build pour qualifier l’étape que l’on réalise ici. Il y en a 3 possibles : build, test, deploy (documentation GitLab). Ici nous choisissons build puisqu’il s’agit de la compilation de notre projet.

-

À la suite nous chargeons une image docker qui contient les outils texlive.

-

Et enfin la directive script définit en bash l’enchaînement d’étapes que nous réalisons pour compiler le projet.

-
+

First, we declare stage: build to qualify the step we’re performing here. There are 3 possible stages: build, test, deploy (GitLab documentation). Here we choose build since this is the compilation of our project.

+

Next, we load a docker image that contains the texlive tools.

+

Finally, the script directive defines in bash the sequence of steps we perform to compile the project.

+
-Exécution conditionnelle de biber +Conditional execution of biber
-

Noter que nous n’avons pas mis d’extensions dans FILE_NAMES afin de pouvoir détecter ici les fichiers bcf caractéristiques de la bibliographie.

+

Note that we haven’t included extensions in FILE_NAMES so that we can detect here the bcf files characteristic of the bibliography.

-

Finalement, nous utilisons la directive after_script pour afficher dans les journaux de la CI les fichiers de logs des compilations.

-

Enfin artifacts spécifie que les artéfacts que l’on veut conserver de la CI sont tous les PDF à la racine du dépôt

+

Finally, we use the after_script directive to display the compilation log files in the CI logs.

+

Lastly, artifacts specifies that the artifacts we want to keep from the CI are all PDFs at the root of the repository

-
-

La phase de déploiement deploy

+
+

The deployment phase deploy

deploy:
   stage: deploy
@@ -427,56 +417,56 @@ Exécution conditionnelle de biber
         echo "No PDF changes to commit"
       fi
-

Finalement nous déployons nos PDF. Pour cela on charge une image légère Alpine Linux avec la version Git sélectionnée dans les variables.

-

Avec la directive before_script on clone le dépôt.

-
+

Finally, we deploy our PDFs. For this, we load a lightweight Alpine Linux image with the Git version selected in the variables.

+

With the before_script directive, we clone the repository.

+
-Pour créer le token GitLab +To create the GitLab token
-

Notez dans le git clone que nous employons une variable GITLAB_TOKEN, celle-ci est a créer au préalable et à déclarer dans le dépôt.

-

Pour cela :

+

Note in the git clone that we use a GITLAB_TOKEN variable, which must be created beforehand and declared in the repository.

+

To do this:

    -
  1. Rendez-vous dans les paramètre de votre dépôt.
  2. +
  3. Go to your repository settings.

-
Dans les menus de gauche, déplier “Settings” et rendez-vous dans “Access tokens”
+
In the left menus, expand “Settings” and go to “Access tokens”
    -
  1. Ici ajoutez un nouveau token.
  2. +
  3. Here add a new token.

-
Cliquer sur “Add new token”
+
Click on “Add new token”
    -
  1. En configurant les permissions read_repository et write_repository afin de pouvoir cloner et pousser nos fichiers. Puis cliquer sur “Create project access token”.
  2. +
  3. Configure the read_repository and write_repository permissions to be able to clone and push our files. Then click on “Create project access token”.

    -
  1. Votre token est maintenant affiché, copiez le car il ne sera pas raffiché après.

  2. -
  3. Rendez-vous maintenant dans CI/CD settings.

  4. +
  5. Your token is now displayed, copy it as it will not be displayed again.

  6. +
  7. Now go to CI/CD settings.

    -
  1. Créer maintenant la variable en cliquant sur “Add variable”, nommez la GITLAB_TOKEN, dans “value” ajoutez le token copié.
  2. +
  3. Now create the variable by clicking on “Add variable”, name it GITLAB_TOKEN, in “value” add the copied token.
-

La suite du script déplace les PDF dans le dépôt cloné, crée la branche de publication et ajoute les pdf.

-

Vous avez normalement maintenant une CI de compilation et publication de PDF ! Maintenant vous pouvez faire référence dans votre README.md à vos PDF en saisissant un lien du type :

-

https://mongitlab.com/monnomutilisateur/mondepot/-/raw/monpdf.pdf

-

qui permet d’afficher directement dans le navigateur le produit de la compilation. 😄

+

The rest of the script moves the PDFs to the cloned repository, creates the publication branch and adds the pdfs.

+

You should now have a CI for compiling and publishing PDFs! Now you can reference your PDFs in your README.md by entering a link like:

+

https://mygitlab.com/myusername/myrepo/-/raw/mypdf.pdf

+

which allows you to display the compilation output directly in the browser. 😄

diff --git a/search.json b/search.json index 74bbd87..bda85b3 100644 --- a/search.json +++ b/search.json @@ -28,18 +28,18 @@ "text": "Français" }, { - "objectID": "posts/ci-gitlab-latex.html#la-phase-de-compilation-build_tex", - "href": "posts/ci-gitlab-latex.html#la-phase-de-compilation-build_tex", + "objectID": "posts/ci-gitlab-latex.html#the-compilation-phase-build_tex", + "href": "posts/ci-gitlab-latex.html#the-compilation-phase-build_tex", "title": "Faire une CI LaTeX avec GitLab", - "section": "La phase de compilation build_tex", - "text": "La phase de compilation build_tex\nNous allons détailler l’étape build_tex :\n\nbuild_tex:\n stage: build\n image: registry.gitlab.com/islandoftex/images/texlive:latest\n script:\n - |\n for FILE_NAME in $FILE_NAMES\n do\n echo \"Compiling ${FILE_NAME}\"\n pdflatex --shell-escape ${FILE_NAME}.tex\n if test -f ${FILE_NAME}.bcf; then\n echo \"Found ${FILE_NAME}.bcf, running biber\"\n biber ${FILE_NAME}\n fi\n pdflatex --shell-escape ${FILE_NAME}.tex\n done\n after_script:\n - |\n for FILE_NAME in $FILE_NAMES\n do\n echo \"============================================\"\n cat ${FILE_NAME}.log\n echo \"============================================\"\n done\n\n artifacts:\n paths:\n - \"*.pdf\"\n\nOn déclare tout d’abord le stage: build pour qualifier l’étape que l’on réalise ici. Il y en a 3 possibles : build, test, deploy (documentation GitLab). Ici nous choisissons build puisqu’il s’agit de la compilation de notre projet.\nÀ la suite nous chargeons une image docker qui contient les outils texlive.\nEt enfin la directive script définit en bash l’enchaînement d’étapes que nous réalisons pour compiler le projet.\n\n\n\n\n\n\nExécution conditionnelle de biber\n\n\n\nNoter que nous n’avons pas mis d’extensions dans FILE_NAMES afin de pouvoir détecter ici les fichiers bcf caractéristiques de la bibliographie.\n\n\nFinalement, nous utilisons la directive after_script pour afficher dans les journaux de la CI les fichiers de logs des compilations.\nEnfin artifacts spécifie que les artéfacts que l’on veut conserver de la CI sont tous les PDF à la racine du dépôt" + "section": "The compilation phase build_tex", + "text": "The compilation phase build_tex\nLet’s detail the build_tex step:\n\nbuild_tex:\n stage: build\n image: registry.gitlab.com/islandoftex/images/texlive:latest\n script:\n - |\n for FILE_NAME in $FILE_NAMES\n do\n echo \"Compiling ${FILE_NAME}\"\n pdflatex --shell-escape ${FILE_NAME}.tex\n if test -f ${FILE_NAME}.bcf; then\n echo \"Found ${FILE_NAME}.bcf, running biber\"\n biber ${FILE_NAME}\n fi\n pdflatex --shell-escape ${FILE_NAME}.tex\n done\n after_script:\n - |\n for FILE_NAME in $FILE_NAMES\n do\n echo \"============================================\"\n cat ${FILE_NAME}.log\n echo \"============================================\"\n done\n\n artifacts:\n paths:\n - \"*.pdf\"\n\nFirst, we declare stage: build to qualify the step we’re performing here. There are 3 possible stages: build, test, deploy (GitLab documentation). Here we choose build since this is the compilation of our project.\nNext, we load a docker image that contains the texlive tools.\nFinally, the script directive defines in bash the sequence of steps we perform to compile the project.\n\n\n\n\n\n\nConditional execution of biber\n\n\n\nNote that we haven’t included extensions in FILE_NAMES so that we can detect here the bcf files characteristic of the bibliography.\n\n\nFinally, we use the after_script directive to display the compilation log files in the CI logs.\nLastly, artifacts specifies that the artifacts we want to keep from the CI are all PDFs at the root of the repository" }, { - "objectID": "posts/ci-gitlab-latex.html#la-phase-de-déploiement-deploy", - "href": "posts/ci-gitlab-latex.html#la-phase-de-déploiement-deploy", + "objectID": "posts/ci-gitlab-latex.html#the-deployment-phase-deploy", + "href": "posts/ci-gitlab-latex.html#the-deployment-phase-deploy", "title": "Faire une CI LaTeX avec GitLab", - "section": "La phase de déploiement deploy", - "text": "La phase de déploiement deploy\n\ndeploy:\n stage: deploy\n image:\n name: alpine/git:${GIT_VERSION}\n entrypoint: [\"\"]\n\n before_script:\n # Clone le repo dans un dossier temporaire\n - git clone \"https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git\" \"${CI_COMMIT_SHA}\"\n\n # Configure l’identité git\n - git config --global user.email \"${GIT_USER_EMAIL:-$GITLAB_USER_EMAIL}\"\n - git config --global user.name \"${GIT_USER_NAME:-$GITLAB_USER_NAME}\"\n\n script:\n # Déplace les PDFs compilés dans le repo cloné\n - mv *.pdf \"${CI_COMMIT_SHA}/\"\n - cd \"${CI_COMMIT_SHA}\"\n\n # Crée une branche orpheline (vierge, sans historique ni fichiers)\n - git checkout --orphan \"${PDF_BRANCH}\"\n - git reset --hard\n\n # Ajoute uniquement les PDF\n - git add -f *.pdf\n\n # Vérifie s’il y a des changements et push\n - |\n CHANGES=$(git status --porcelain | wc -l)\n if [ \"$CHANGES\" -gt \"0\" ]; then\n git commit -m \"${COMMIT_MESSAGE:-Updating PDF files}\"\n git push --force origin \"${PDF_BRANCH}\" -o ci.skip\n else\n echo \"No PDF changes to commit\"\n fi\n\nFinalement nous déployons nos PDF. Pour cela on charge une image légère Alpine Linux avec la version Git sélectionnée dans les variables.\nAvec la directive before_script on clone le dépôt.\n\n\n\n\n\n\nPour créer le token GitLab\n\n\n\nNotez dans le git clone que nous employons une variable GITLAB_TOKEN, celle-ci est a créer au préalable et à déclarer dans le dépôt.\nPour cela :\n\nRendez-vous dans les paramètre de votre dépôt.\n\n\n\n\nDans les menus de gauche, déplier “Settings” et rendez-vous dans “Access tokens”\n\n\n\nIci ajoutez un nouveau token.\n\n\n\n\nCliquer sur “Add new token”\n\n\n\nEn configurant les permissions read_repository et write_repository afin de pouvoir cloner et pousser nos fichiers. Puis cliquer sur “Create project access token”.\n\n\n\nVotre token est maintenant affiché, copiez le car il ne sera pas raffiché après.\nRendez-vous maintenant dans CI/CD settings.\n\n\n\nCréer maintenant la variable en cliquant sur “Add variable”, nommez la GITLAB_TOKEN, dans “value” ajoutez le token copié.\n\n\n\nLa suite du script déplace les PDF dans le dépôt cloné, crée la branche de publication et ajoute les pdf.\nVous avez normalement maintenant une CI de compilation et publication de PDF ! Maintenant vous pouvez faire référence dans votre README.md à vos PDF en saisissant un lien du type :\nhttps://mongitlab.com/monnomutilisateur/mondepot/-/raw/monpdf.pdf\nqui permet d’afficher directement dans le navigateur le produit de la compilation. 😄" + "section": "The deployment phase deploy", + "text": "The deployment phase deploy\n\ndeploy:\n stage: deploy\n image:\n name: alpine/git:${GIT_VERSION}\n entrypoint: [\"\"]\n\n before_script:\n # Clone le repo dans un dossier temporaire\n - git clone \"https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git\" \"${CI_COMMIT_SHA}\"\n\n # Configure l’identité git\n - git config --global user.email \"${GIT_USER_EMAIL:-$GITLAB_USER_EMAIL}\"\n - git config --global user.name \"${GIT_USER_NAME:-$GITLAB_USER_NAME}\"\n\n script:\n # Déplace les PDFs compilés dans le repo cloné\n - mv *.pdf \"${CI_COMMIT_SHA}/\"\n - cd \"${CI_COMMIT_SHA}\"\n\n # Crée une branche orpheline (vierge, sans historique ni fichiers)\n - git checkout --orphan \"${PDF_BRANCH}\"\n - git reset --hard\n\n # Ajoute uniquement les PDF\n - git add -f *.pdf\n\n # Vérifie s’il y a des changements et push\n - |\n CHANGES=$(git status --porcelain | wc -l)\n if [ \"$CHANGES\" -gt \"0\" ]; then\n git commit -m \"${COMMIT_MESSAGE:-Updating PDF files}\"\n git push --force origin \"${PDF_BRANCH}\" -o ci.skip\n else\n echo \"No PDF changes to commit\"\n fi\n\nFinally, we deploy our PDFs. For this, we load a lightweight Alpine Linux image with the Git version selected in the variables.\nWith the before_script directive, we clone the repository.\n\n\n\n\n\n\nTo create the GitLab token\n\n\n\nNote in the git clone that we use a GITLAB_TOKEN variable, which must be created beforehand and declared in the repository.\nTo do this:\n\nGo to your repository settings.\n\n\n\n\nIn the left menus, expand “Settings” and go to “Access tokens”\n\n\n\nHere add a new token.\n\n\n\n\nClick on “Add new token”\n\n\n\nConfigure the read_repository and write_repository permissions to be able to clone and push our files. Then click on “Create project access token”.\n\n\n\nYour token is now displayed, copy it as it will not be displayed again.\nNow go to CI/CD settings.\n\n\n\nNow create the variable by clicking on “Add variable”, name it GITLAB_TOKEN, in “value” add the copied token.\n\n\n\nThe rest of the script moves the PDFs to the cloned repository, creates the publication branch and adds the pdfs.\nYou should now have a CI for compiling and publishing PDFs! Now you can reference your PDFs in your README.md by entering a link like:\nhttps://mygitlab.com/myusername/myrepo/-/raw/mypdf.pdf\nwhich allows you to display the compilation output directly in the browser. 😄" }, { "objectID": "index.html", diff --git a/teaching.html b/teaching.html index 16057a9..8941080 100644 --- a/teaching.html +++ b/teaching.html @@ -96,16 +96,6 @@ ul.task-list li input[type="checkbox"] { Posts - -