Commit 73b29ea4 authored by Florent Chehab's avatar Florent Chehab

Mise en ligne du projet

parents
main.*
!main.tex
image: blang/latex
building-latex-master:
stage: build
script:
- latexmk -pdf main.tex
artifacts:
paths:
- "*.pdf"
expire_in: 2 year
only:
- master
tags:
- docker
building-latex-other-branch:
stage: build
script:
- latexmk -pdf main.tex
artifacts:
paths:
- "*.pdf"
expire_in: 2 week
except:
- master
tags:
- docker
\ No newline at end of file
$latex = 'latex -shell-escape';
$pdflatex = 'pdflatex -shell-escape';
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
\ No newline at end of file
Intégration Continue : **LaTeX** et **GitLab**.
=======
- [Prérequis : activer le _shared Runner_](#pr%C3%A9requis-activer-le-shared-runner)
- [C'est parti](#cest-parti)
- [Remarques](#remarques)
- [Commentaires sur l'intégration continue](#commentaires-sur-lint%C3%A9gration-continue)
- [Pour aller plus loin](#pour-aller-plus-loin)
# Prérequis : activer le _shared Runner_
1) Rendez-vous das les `paramètres` du projet GitLab, section `CI/CD`.
2) Cliquez sur `Runners settings` (_expand_).
3) Dans la section _Shared Runners_, cliquez sur _« Activate shared Runners »_.
# C'est parti
Vous n'avez plus qu'à modifier le fichier `main.tex` et à _commit_ les changements, la compilation et la publication à l'adresse `https://gitlab.utc.fr/<login>/<nom-du-projet>/-/jobs/artifacts/master/raw/main.pdf?job=building-latex-master` se fait automatiquement.
## Remarques
- TODO Seul le `pdf` compilé depuis la branche master est rendu disponible en public via les _artifacts_. Ces derniers peuvent être visualisés via :
- La page d'accueil du projet, cliquez sur l'icône _télécharger_ puis sur `Télécharger 'building-latex-master'`
- Dans le menu du projet, cliquez sur `CI/CD` -> `jobs`, puis sur le badge (espérons "réussi") du status associé au job souhaité, puis dans le menu de droite, dans la section `Job artifacts` cliquez sur `browse`.
- _Pensez à adapter la license à votre projet._
# Commentaires sur l'intégration continue
Avec GitLab, toute l'intégration continue est gérée via le fichier `.gitlab-ci.yml`. Voici celui utilisé par ce projet (avec quelques commentaires).
Il comporte 2 jobs sensiblement similaires qui permettent une gestion optimale des ressources disques : à l'heure de la réalisation de ce projet il n'est pas [encore](https://gitlab.com/gitlab-org/gitlab-ce/issues/23777) possible de garder uniquement les derniers artifacts. Pour contourner le système :
- Les artifacts issus de la branche master sont conservés 2 ans.
- Les artifacts issus des autres branches sont conservés 2 semaines.
```yaml
# Téléchargement d'une image Docker avec tous les packets
# texlive pour éviter les ennuis lors de la compilation latex
image: blang/latex
# Premier job : compilation du latex
building-latex-master:
stage: build
script:
# Compilation avec latexmk du fichier main.tex
# qui est à la racine du repo
- latexmk -pdf main.tex
artifacts:
# Génération d'une archive téléchargeable avec le fichier
paths:
- "*.pdf"
expire_in: 2 year # Durée de validité de l'archive
tags:
# Tag pour que le sharedrunner du GitLab de l'UTC
# fasse sont travail.
- docker
# Deuxième job : similaire, mais pour les autres branches
building-latex-other-branch:
stage: build
script:
- latexmk -pdf main.tex
artifacts:
paths:
- "*.pdf"
expire_in: 2 week # durée plus courte
except: # toutes les branches sauf master
- master
tags:
- docker
```
## Pour aller plus loin
Dans la partie `script` d'un job décrit dans le fichier `.gitlab-ci.yml` vous pouvez installer des packets (`apt-get install --yes <nom-du-paquet>`) voire exécuter des scripts bash qui seraient disponibles dans le repo :
```yaml
# [...]
building-latex-master:
stage: build
script:
- bash build.sh
# [...]
```
Les possibilités sont donc infinies :)
- Un peu de lecture : https://gitlab.com/help/user/project/pipelines/job_artifacts.md
- Pour tester vos fichiers `.gitlab-ci.yml` : https://gitlab.utc.fr/ci/lint
**Amusez-vous bien.** :wink:
\ No newline at end of file
\documentclass{article}
\usepackage[a4paper, margin=2.5cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{graphicx}
\usepackage{float}
\title{Intégration continue : \LaTeX}
\author{Florent Chehab}
\begin{document}
\maketitle
\vspace{2cm}
\begin{center}
\LARGE
\textbf{
Exemple d'intégration continue avec \LaTeX~et \texttt{GitLab}.
}
\end{center}
\begin{figure}[H]
\includegraphics[width=\textwidth]{./images/GitLab-logo.png}
\end{figure}
\end{document}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment