From 46e7ece84adb89d925cfbed658b906bbc3143ddf Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Fri, 29 Mar 2024 11:17:53 +0100 Subject: [PATCH] ajout doc --- doc/mesproject.md | 10 +++++++ doc/tekton.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 doc/mesproject.md create mode 100644 doc/tekton.md diff --git a/doc/mesproject.md b/doc/mesproject.md new file mode 100644 index 0000000..0fa68b5 --- /dev/null +++ b/doc/mesproject.md @@ -0,0 +1,10 @@ +# Mse Project + +## Evénements et triggers + +Lors de l'émission d'un événement par Gitea, selon la nature de l'événement, les pipelines `symfonycheck` ou `buildimage` seront déclenchés. + + - Pull request créé, ou push sur une pull request : `symfonycheck` + - merge d'une PR : `buildimage` + + diff --git a/doc/tekton.md b/doc/tekton.md new file mode 100644 index 0000000..1510a30 --- /dev/null +++ b/doc/tekton.md @@ -0,0 +1,76 @@ +# Tekton CI + +## Webhook, Événements et Triggers + +Un webhook Gitea configuré, envoi des événements sur un endpoint défini par en `EventListener`. + +Cet `EventListener`, selon les filtres et overlays définis, peut alors déclencher des `TriggerTemplates` (configuré selon un `TriggerBinding`), qui alors configurerons a leur tour des `PipelineRun`, qui exécuterons des `Pipelines`, qui configurerons des `TaskRun`, qui alors exécuterons des `Task`. + +```mermaid +flowchart LR + A[Webhook Event] --> B(EventListener + filter et overlays) + B --> D(Pipeline Binding) + B --> E(Pipeline Template) + D --> E + E --> F(PipelineRun) + F --> G(Pipeline) + + +``` + +Les `Webhooks`, événements et triggers dans Tekton CI permettent de déclencher des actions automatisées en réponse à des événements spécifiques dans un système de gestion de code source. + +### Filter et overlay + +Le `filter` permet de déclencher les Triggers pour les événements répondant au critère du filtre + +Les `overlays` permettent de récupérer une valeur de la requête pour la passer en paramètre + +### Workspaces + +Les workspaces sont des volumes qui sont monté à la demande dans les conteneurs des différentes `Task` dans le répertoire `/workspace`. + +### Exemples + + - [EventListener MSE](kustomization/base/tekton/event/mseproject.yaml) + - [TriggerBinding MSE](kustomization/base/tekton/event/msebuild-binding.yaml) + - [TriggerTemplate MSE](kustomization/base/tekton/event/msebuild-template.yaml) + + + +## Pipelines + +Les `Pipeline` dans Tekton CI décrivent une série d'étapes ou de tâches à exécuter pour automatiser un processus de déploiement ou de test logiciel. +Un `PipelineRun` permet d'exécuter un `Pipeline` en lui donnant des paramètres + +L'option `runAfter:` permet de définir si une `Task` doit s'exécuter une fois qu'une autre Task est terminé. Si `runAfter` n'est par défini, la `Task` sera exécuté en parallèle + + + +```mermaid +flowchart LR + G(PipelineRun) --> H(Pipeline) + H --> I(TaskRun) + I --> J(Task) + +``` +### Exemples + +- [SymfonyCheck](../kustomization/base/tekton/pipeline/symfonycheck.yaml) + +## Tasks + +Les `Task` dans Tekton CI représentent des actions individuelles à effectuer dans un pipeline. Elles peuvent inclure des opérations telles que la construction, le déploiement, les tests, etc. +Une `TaskRun` permet d'exécuter une `Task` en lui donnant des paramètres. +Les `Task` vont alors enchainer les différentes steps. +Les `Task` peuvent émettre des résultats, qui seront alors accessible par d'autres `Task` + +L'option `OnError` permet de déclencher un évenement à la suite d'une erreur d'une `step`. +On peut alors s'en servir pour passer à la st`ep suivante, sans bloquer l'exécution de la `Task`. + +### Exemple + - [ImageFormater](kustomization/base/tekton/task/common/imageformater.yaml) + + +