Commit 5e87add5 authored by Rémi Cailletaud's avatar Rémi Cailletaud

exo3

parent df8affcc
image : ubuntu
stages :
- test
- test1
- test2
- test3
job_test1_1 :
stage: test1
script :
- /bin/true
job_test :
stage: test
job_test2_1 :
stage: test2
script :
- echo "Hello world"
- more /etc/issue
- date
- /bin/true
job_test2_2 :
stage: test2
script :
- /bin/false
allow_failure: true
job_test3_1 :
stage: test3
script :
- /bin/true
......@@ -5,7 +5,7 @@ Le TP est une suite de petits exercices consistant à écrire à chaque fois un
Le code source est fourni. Nous allons travailler sur deux (tout) petits codes :
* python-extension : une extension python en C, pour voir un peu de vraie compilation, quand même ;
* python-dice : un module pur python d'une ligne, qui tire des dés. Avec lui nous irons des tests au déploiement en production en passant pas la doc et la publication sur pypi.
* python-dice : un module pur python d'une ligne, qui tire des dés. Avec lui nous irons des tests au déploiement en production en passant par la doc et la publication sur pypi.
À chaque fois, nous fournissons les mots-clés à chercher dans la [documentation très complète de gitlab](https://docs.gitlab.com/ee/ci/yaml/README.html). Comme nous sommes gentils, nous fournissons aussi les solutions dans les fichiers .gitlab-ci-\*.yml.
......@@ -15,21 +15,32 @@ Mon premier fichier .gitlab-ci.yml. Il s'agit d'un fichier au format YAML décri
Chaque job contient un [script](https://docs.gitlab.com/ee/ci/yaml/#script), exécuté par le Runner.
*But* : Afficher "Hello world", /etc/issue et l'heure. Aller dans l'interface de Gitlab (CI/CD) et constater le résultat. On peut voir le nom du Runner qui a exécuté le job.
**But** : Afficher "Hello world", /etc/issue et l'heure. Aller dans l'interface de Gitlab (CI/CD) et constater le résultat. On peut voir le nom du Runner qui a exécuté le job.
_Note_ : Chaque job est indépendant (chaque job peut-être exécuté sur un Runner différent...).
*Note* : Chaque job est indépendant (chaque job peut-être exécuté sur un Runner différent...).
## 2. changement d'image docker ##
Les jobs sont exécutés dans les conteneur docker. Vous pouvez choisir le conteneur à utiliser avec le mot-clés [image](https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#define-image-and-services-from-gitlab-ci-yml).o
*But* : Utiliser l'image ubuntu. Constater la différence.
**But** : Utiliser l'image Ubuntu à la place de celle par défaut (Alpine). Constater la différence.
_Note 1_ : Par défaut on utilise DockerHub, le repository Docker n'étant (encore) pas activé sur notre instance Gitlab.
_Note 2_ : On peut choisir une image différente par job.
*Note 1* : Par défaut on utilise DockerHub, le repository Docker n'étant (encore) pas activé sur notre instance Gitlab.
*Note 2* : On peut choisir une image différente par job.
## 3. explication pipeline avec des true et false et ajout d'allow_failure ##
On définit les Pipelines en déclatant plusieurs [stages](https://docs.gitlab.com/ee/ci/yaml/#stage). Chaque job définit à quelle étape il appartient grâce au mot-clé [stage](https://docs.gitlab.com/ee/ci/yaml/#stage).
Plusieurs jobs de la même étape pourront être exécuté en même temps si les ressources le permettent. Par contre, 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 [allow_failure](https://docs.gitlab.com/ee/ci/yaml/#allow_failure).
**But** : Définir 3 stages test1, test2 et test3. Les étapes 1 et 3 comporteront chacune un job, et l'étape deux en compertera deux, dont un qui échoue.
Observer le comportement dans l'interface, puis ajouter autoriser l'échec pour le job qui échoue.
## 4. when (manual, failure, always, success (default)) ##
## 5. \[skip ci\] \[ci skip\] ##
##6. Interface : les schedules (nightly build).##
......
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