# Commandes linux pour pipelines CI-CD <!-- Put the link to this slide here so people can follow --> slide: https://hackmd.io/@l7_8GhgfTMuVbPsP3F-iuQ/SybVGQgq8 --- ## Commandes linux pour pipelines CI-CD * Intégration et déploiement en continu * Ligne de commande linux * Les commandes utiles pour le CI-CD * Ressources --- ## Intégration et déploiement en continu depuis un dépôt gitlab * A partir des sources de l'application * Donner des instructions pour : * compiler * (tester, vérifier la qualité) * packager en un livrable * le livrer à une chaîne de mise en production * Ex : déployer une API REST java zippée --- ### Quel environnement pour effectuer les opérations de compilation, packaging ... * Au sein d'un container linux * A l'aide de scripts --- ### Comment s'exécutent les opérations * un container linux du pipeline ~ une machine linux avec les sources dessus * Exécute les instructions de la section `script` de chaque `stage` du `.gitlab-ci.yml` * comme dans une console linux --- ## Linux et la ligne de commande * Linux est un ensemble de systèmes d'exploitation basés sur un noyau commun (noyau linux) * Ces systèmes sont adaptés à de nombreux usages : * pour des serveurs de toutes sortes * pour des postes de travail * pour créer des containers => environnements disponibles pour les pipelines --- ### Environnements graphiques et console * Linux avec un bureau (comme Windows) * ou linux sans fenêtre : avec la console > les mêmes fonctionnalités mais plus ou moins efficaces / faciles à utiliser --- ### Un environnement console de référence : le bash * bash = _Bourne Again Shell_ * Application vieille de plus de 30 ans qui permet d'utiliser linux en ligne de commande * langage et outil permettant de faire beaucoup de choses, d'automatiser... * un _prompt_ pour saisir des commandes * une sortie texte en guise de réponse --- ## Les commandes utiles du _bash_ pour l'intégration et le déploiement en continu * Exécuter une instruction * Gérer fichiers et répertoires * Créer / modifier des fichiers * Combiner les commandes * Variables d'environnement * Installer d'autres outils * Utiliser d'autres outils --- ### Exécuter une instruction * Saisir le nom d'une commande linux ou d'une instruction du _bash_ * avec respect de la syntaxe : * nom exact avec respect de la casse * respect des options * respect des paramètres * Appuyer sur Entrée !!! --- ### Commandes pour gérer fichiers et répertoires * Créer un dossier : `mkdir` * Lister les dossiers / fichiers : `ls` * Copier : `cp` * Déplacer / renommer : `mv` * Supprimer : `rm` --- ### Commandes pour créer/ modifier des fichiers * Les redirections : `>` et `>>` * Afficher quelque chose : `echo` * Voir le contenu d'un fichier : `cat` * Rechercher dans un fichier : `grep` * remplacer dans un fichier : `sed` --- ### Combiner les commandes * Réutiliser le résultat d'une commande dans une autre : `$()` * Enchaîner des commandes : `&&` * Utiliser la sortie d'une commande dans l'entrée d'une autre : `|` --- ### Variables d'environnement * Définir une variable : `MA_VARIABLE=...` * Pour un portée globale : `export MA_VARIABLE` * Utiliser une variable : `$MA_VARIABLE` ou `"$MA_VARIABLE"` * Evaluer une expression arithmétique : `$(($MA_VARIABLE + 1))` --- ### Installer d'autres outils --- ### Utiliser d'autres outils * Quasiment tous peuvent se lancer depuis un terminal --- Variables d'environnement * Installer d'autres outils * Utiliser d'autres outils ## Ressources
{"metaMigratedAt":"2023-06-15T07:48:15.468Z","metaMigratedFrom":"YAML","title":"Commandes linux pour pipelines","breaks":true,"description":"un atelier sur les commandes linux de base pour les pipelines CI-CD.","contributors":"[{\"id\":\"97bffc1a-181f-4ccb-956c-fb0fdc5fa2b9\",\"add\":3895,\"del\":2587}]"}
    157 views