Commit c6a13e0d authored by Cyril L'Orphelin's avatar Cyril L'Orphelin
Browse files

Intitulé TP5 - Etape 1

parent b49b7d3f
## TP5 : intégration et déploiement continus
----
### Préambule
- Le TP est réalisable entièrement dans Gitlab avec l'aide de l'éditeur de pipeline
- Vous allez vous placer sur votre projet personnel anf
- Vous allez créer une nouvelle branche tp5
- Vous allez vérifier dans les préférences générales du projet si la CI/CD est activée, activez la si nécessaire
- A partir de maintenant, vous allez simplement éditer et commiter le manifeste .gitlab-ci.yml
- Vous avez des liens pour vous aider sur chaque mot clé qui pointent sur la documentation Gitlab
----
### Etape 1 : Stages et Pipelines
- Créez un fichier .gitlab-ci.yml à la racine de votre projet ou utilisez le bouton "CI/CD configuration"
- Ajouter un seul <a href="https://docs.gitlab.com/ee/ci/yaml/#stages">stage</a> test et le <a href="https://docs.gitlab.com/ee/ci/yaml/#jobs">job </a> qui correspond
- Le script devra faire un "Hello world" et afficher la date courante
- Après le commit, visualisez le pipeline et l'execution du runner dans Gitlab
<details>
<summary>Solution</summary>
<pre><code>
stages :
- test
job_test :
stage: test
script :
- echo "Hello world"
- date
</code></pre>
</details>
----
- Les jobs sont exécutés dans des conteneurs Docker.
- Vous pouvez choisir le conteneur à utiliser avec le mot-clés image
- Pour l'execution précédente, l'image par défaut a été utilisée, recommencez en utilisant une image ubuntu
<details>
<summary>Solution</summary>
<pre><code>
image : ubuntu
stages :
- test
job_test :
stage: test
script :
- echo "Hello world"
- date
</code></pre>
</details>
----
- Un pipeline est défini à l'aide de plusieurs <a href="https://docs.gitlab.com/ee/ci/yaml/#stages">stages</a>
- Plusieurs jobs de la même étape pourront être exécuté en même temps si les ressources le permettent.
- En revanche, l'exécution d'une étape dépend du bon déroulement de la précédente, à moins d'en autoriser explicitement l'échec avec <a href="https://docs.gitlab.com/ee/ci/yaml/#allow_failure">allow_failure.</a>
- Vous allez créer un pipeline dans une image ubuntu avec 3 stages (Solution 1)
- le premier va executer une script pour donner la date
- le deuxième va executer une script pour donner le listing du répertoire courant "ls"
- le troisième va executer une script pour donner des informations système sur la machine "uname -r"
- Introduisez une erreur dans le script du stage 2 (appelez une commande non existante genre ms)
- Que se passe t'il pour le stage 3 ?
- Faites en sorte que le stage 3 soit executé malgré l'échec du stage 2 (Solution 2)
<details>
<summary>Solution 1 </summary>
<pre><code>
image : ubuntu
stages :
- test1
- test2
- test3
job_test1 :
stage: test1
script :
- date
job_test2 :
stage: test2
script :
- ls
job_test3 :
stage: test3
script :
- uname -r
</code></pre>
</details>
<details>
<summary>Solution 2 </summary>
<pre><code>
image : ubuntu
stages :
- test1
- test2
- test3
job_test1 :
stage: test1
script :
- date
job_test2 :
stage: test2
script :
- ms
allow_failure: true
job_test3 :
stage: test3
script :
- uname -r
</code></pre>
</details>
----
- Les mots clés only/except permettent de définir des roles de déploiement
- Reprenez l'exemple avec 3 stages, et faites en sorte
- que le stage 1 soit toujours executé (pas de règles)
- que le stage 2 soit executé sur la branche tp5
- que le stage 3 soit executé sur une branche tp5_test que vous allez crée au préalable
- Vérifiez les exécutions sur les 2 branches
<details>
<summary>Solution </summary>
<pre><code>
image : ubuntu
stages :
- test1
- test2
- test3
job_test1 :
stage: test1
script :
- date
job_test2 :
stage: test2
script :
- ms
allow_failure: true
job_test3 :
stage: test3
script :
- uname -r
</code></pre>
</details>
\ 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