# 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)