GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
There was an error fetching the commit references. Please try again later.
"> Si `gitlab-runner` n'est pas installé sur votre machine, rdv à la section **Utiliser un runner partagé**\n",
"> Si `gitlab-runner` n'est pas installé sur votre machine, rdv à la section **Exo1**\n",
"\n",
"\n",
"Engistrer un runner consiste à créer un nouveau runner associé à un projet.\n",
"Engistrer un runner consiste à créer un nouveau runner associé à un projet.\n",
"Si vous n'êtes pas administrateur du GitLab, il s'agit forcément d'un runner spécifique. Celui-ci se trouve dans \n",
"Si vous n'êtes pas administrateur du GitLab, il s'agit forcément d'un runner spécifique. Celui-ci se trouve dans \n",
...
@@ -337,6 +337,27 @@
...
@@ -337,6 +337,27 @@
}
}
},
},
"source": [
"source": [
"### Si vous souhaitez utiliser un runner partagé\n",
"\n",
"Dans la rubrique :\n",
"\n",
"```\n",
"Settings > CI / CD > Runners settings\n",
"```\n",
"\n",
"Notez la présence de plusieurs runners partagés dont `clu1-tp-gitlab-ci` qui porte les tags `shell` et `docker` mais pas `specific`. Pour cibler ce runner, retirer le tag `specific` du fichier `.gitlab-ci.yml`"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Déclenchez une action d'intégration continue\n",
"\n",
"Modifiez la ligne de script, par exemple:"
"Modifiez la ligne de script, par exemple:"
]
]
},
},
...
@@ -399,7 +420,7 @@
...
@@ -399,7 +420,7 @@
"cell_type": "markdown",
"cell_type": "markdown",
"metadata": {
"metadata": {
"slideshow": {
"slideshow": {
"slide_type": "subslide"
"slide_type": "-"
}
}
},
},
"source": [
"source": [
...
@@ -411,9 +432,13 @@
...
@@ -411,9 +432,13 @@
},
},
{
{
"cell_type": "markdown",
"cell_type": "markdown",
"metadata": {},
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"source": [
"### Provoquer une erreur\n",
"### Provoquez une erreur\n",
"\n",
"\n",
"Dans `.gitlab-ci.yml`, introduisez une erreur dans une des lignes du script et observer l'effet dans `CI / CD > Pipelines` après avoir pousser les modifications.\n",
"Dans `.gitlab-ci.yml`, introduisez une erreur dans une des lignes du script et observer l'effet dans `CI / CD > Pipelines` après avoir pousser les modifications.\n",
-`gitlab-runner` est un démon installé sur une machine destinée à exécuter les tâches d'intégration continue.
-`gitlab-runner` est un démon installé sur une machine destinée à exécuter les tâches d'intégration continue.
- Pour chaque *runner* enregistré, `gitlab-runner` écoute l'instance de gitlab correspondante dans l'attente d'une tâche
- Pour chaque *runner* enregistré, `gitlab-runner` écoute l'instance de gitlab correspondante dans l'attente d'une tâche
- Cette tâche est déclenchée par des évènements (`push`, `merge`, etc.) sur le projet avec lequel il est lié
- Cette tâche est déclenchée par des évènements (`push`, `merge`, etc.) sur le projet avec lequel il est lié
- Ce lien est créé à l'enregistrement du *runner* par un token associé au projet.
- Ce lien est créé à l'enregistrement du *runner* par un token associé au projet.
[**Doc en ligne**](https://docs.gitlab.com/ce/ci/runners/#shared-vs-specific-runners)
[**Doc en ligne**](https://docs.gitlab.com/ce/ci/runners/#shared-vs-specific-runners)
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Runners : *shared* vs *specific*
### Runners : *shared* vs *specific*
-*shared* : n'importe quel projet peut s'en servir. Seul l'administrateur du GitLab peut enregistrer des runners partagés.
-*shared* : n'importe quel projet peut s'en servir. Seul l'administrateur du GitLab peut enregistrer des runners partagés.
-*specific* : seul le créateur du runner peut s'en servir dans d'autres projets
-*specific* : seul le créateur du runner peut s'en servir dans d'autres projets
> **Attention** : les runners partagés sont pratiques mais peuvent présenter des [problèmes de sécurité](https://docs.gitlab.com/ee/ci/runners/README.html#be-careful-with-sensitive-information).
> **Attention** : les runners partagés sont pratiques mais peuvent présenter des [problèmes de sécurité](https://docs.gitlab.com/ee/ci/runners/README.html#be-careful-with-sensitive-information).
### Runners : *locked* vs *unlocked runners*
### Runners : *locked* vs *unlocked runners*
-*locked* : le runner ne peut être utilisé que pour le projet avec lequel il est lié
-*locked* : le runner ne peut être utilisé que pour le projet avec lequel il est lié
-*unlocked* : le créateur du runner peut l'utiliser dans ses autres projets
-*unlocked* : le créateur du runner peut l'utiliser dans ses autres projets
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Installer `gitlab-runner`
### Installer `gitlab-runner`
La **[procédure](https://docs.gitlab.com/runner/install/)** dépend du système d'exploitation.
La **[procédure](https://docs.gitlab.com/runner/install/)** dépend du système d'exploitation.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Fork du TP
## Fork du TP
Faire un *fork* du projet sur votre compte GitLab en allant sur la page d'accueil du projet
Faire un *fork* du projet sur votre compte GitLab en allant sur la page d'accueil du projet


ou en suivant [ce lien](https://git.unistra.fr/m.boileau/tp-gitlab-ci/forks/new).
ou en suivant [ce lien](https://git.unistra.fr/m.boileau/tp-gitlab-ci/forks/new).
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Clone du TP
## Clone du TP
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
- Pour paramétrer les commandes de ce notebook, positionner les variables d'environnement suivantes :
- Pour paramétrer les commandes de ce notebook, positionner les variables d'environnement suivantes :
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
export USERNAME="m.boileau"# votre login sur git.unistra.fr
export USERNAME="m.boileau"# votre login sur git.unistra.fr
export TPDIR=$HOME# le répertoire où vous souhaitez installer le TP
export TPDIR=$HOME# le répertoire où vous souhaitez installer le TP
> Si `gitlab-runner` n'est pas installé sur votre machine, rdv à la section **Utiliser un runner partagé**
> Si `gitlab-runner` n'est pas installé sur votre machine, rdv à la section **Exo1**
Engistrer un runner consiste à créer un nouveau runner associé à un projet.
Engistrer un runner consiste à créer un nouveau runner associé à un projet.
Si vous n'êtes pas administrateur du GitLab, il s'agit forcément d'un runner spécifique. Celui-ci se trouve dans
Si vous n'êtes pas administrateur du GitLab, il s'agit forcément d'un runner spécifique. Celui-ci se trouve dans
votre projet, rubrique :
votre projet, rubrique :
```
```
Settings > CI / CD > Runners settings
Settings > CI / CD > Runners settings
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Dans le terminal, maintenant :
Dans le terminal, maintenant :
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
export CI_SERVER_URL=https://git.unistra.fr/ # Do not change for this session
export CI_SERVER_URL=https://git.unistra.fr/ # Do not change for this session
export RUNNER_NAME=a_runner_for_$USERNAME
export RUNNER_NAME=a_runner_for_$USERNAME
export REGISTRATION_TOKEN=xxx # Replace by the value provided by the runner setting page
export REGISTRATION_TOKEN=xxx # Replace by the value provided by the runner setting page
export REGISTER_NON_INTERACTIVE=true
export REGISTER_NON_INTERACTIVE=true
#gitlab-runner register --executor shell # sous MacOS
#gitlab-runner register --executor shell # sous MacOS
#sudo gitlab-runner register --executor shell # sous Linux
#sudo gitlab-runner register --executor shell # sous Linux
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Ou bien lancez la commande en mode interactif et en suivant pas à pas la [procédure](http://docs.gitlab.com/runner/register/#registering-runners):
Ou bien lancez la commande en mode interactif et en suivant pas à pas la [procédure](http://docs.gitlab.com/runner/register/#registering-runners):
```
```
gitlab-runner register # sous MacOS
gitlab-runner register # sous MacOS
sudo gitlab-runner register # sous Linux
sudo gitlab-runner register # sous Linux
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
- Retournez sur la page de paramètrage des runners
- Retournez sur la page de paramètrage des runners
- Repérez votre nouveau runner
- Repérez votre nouveau runner
- Editez-le et ajouter les tags `specific, shell`
- Editez-le et ajouter les tags `specific, shell`
Votre runner est maintenant prêt à travailler. Nous allons le tester en lui soumettant une tâche GitLab CI déclenchée par un `git push` sur votre projet.
Votre runner est maintenant prêt à travailler. Nous allons le tester en lui soumettant une tâche GitLab CI déclenchée par un `git push` sur votre projet.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Exo1 : helloworld en bash
## Exo1 : helloworld en bash
### Mettre en place une action d'intégration continue
### Mettre en place une action d'intégration continue
Aller dans le répertoire racine du clone local de votre projet et basculer sur la branche `exo1`
Aller dans le répertoire racine du clone local de votre projet et basculer sur la branche `exo1`
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
cd$TPDIR
cd$TPDIR
cd tp-gitlab-ci
cd tp-gitlab-ci
```
```
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
git pull
git pull
git checkout exo1
git checkout exo1
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Repérer le fichier `.gitlab-ci.yml`
Repérer le fichier `.gitlab-ci.yml`
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
ls-al
ls-al
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
L'éditer avec l'éditeur de votre choix
L'éditer avec l'éditeur de votre choix
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
cat .gitlab-ci.yml
cat .gitlab-ci.yml
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
-`helloworld` indique le nom du job d'intégration continue
-`helloworld` indique le nom du job d'intégration continue
-`tags` permet de sélectionner des runners sur la base de mot-clés
-`tags` permet de sélectionner des runners sur la base de mot-clés
-`scripts` correspond aux lignes de commande `bash` que vous souhaitez exécuter
-`scripts` correspond aux lignes de commande `bash` que vous souhaitez exécuter
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Si vous souhaitez utiliser un runner partagé
Dans la rubrique :
```
Settings > CI / CD > Runners settings
```
Notez la présence de plusieurs runners partagés dont `clu1-tp-gitlab-ci` qui porte les tags `shell` et `docker` mais pas `specific`. Pour cibler ce runner, retirer le tag `specific` du fichier `.gitlab-ci.yml`
%% Cell type:markdown id: tags:
### Déclenchez une action d'intégration continue
Modifiez la ligne de script, par exemple:
Modifiez la ligne de script, par exemple:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
echo' - echo "bonjour, monde"'>> .gitlab-ci.yml
echo' - echo "bonjour, monde"'>> .gitlab-ci.yml
cat .gitlab-ci.yml
cat .gitlab-ci.yml
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Enregistrez avec git
Enregistrez avec git
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
git add .gitlab-ci.yml
git add .gitlab-ci.yml
git commit -m"Update .gitlab-ci.yml"
git commit -m"Update .gitlab-ci.yml"
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Pousser vos modifications
Pousser vos modifications
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` bash
``` bash
git push
git push
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Sur GitLab, observez l'exécution de votre job dans la rubrique de votre projet :
Sur GitLab, observez l'exécution de votre job dans la rubrique de votre projet :
```
```
CI / CD > Pipelines
CI / CD > Pipelines
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Provoquer une erreur
### Provoquez une erreur
Dans `.gitlab-ci.yml`, introduisez une erreur dans une des lignes du script et observer l'effet dans `CI / CD > Pipelines` après avoir pousser les modifications.
Dans `.gitlab-ci.yml`, introduisez une erreur dans une des lignes du script et observer l'effet dans `CI / CD > Pipelines` après avoir pousser les modifications.
> **Note :** les fichiers peuvent s'éditer directement dans GitLab.
> **Note :** les fichiers peuvent s'éditer directement dans GitLab.