diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e4b9e8698420c346810a5a9a7527659b414b1f9a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+tris_multiples.html
+tris_multiples.pdf
+.vscode
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a1df40a500d8ace8340e805802aad3a7193e7d7c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,47 @@
+image: omalaspinas/pandoc:latest
+
+variables:
+  GIT_SUBMODULE_STRATEGY: recursive
+
+before_script:
+   ##
+   ## Run ssh-agent (inside the build environment)
+   ##
+   - eval $(ssh-agent -s)
+
+   ##
+   ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
+   ## We're using tr to fix line endings which makes ed25519 keys work
+   ## without extra base64 encoding.
+   ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
+   ##
+   - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
+
+   ##
+   ## Create the SSH directory and give it the right permissions
+   ##
+   - mkdir -p ~/.ssh
+   - chmod 700 ~/.ssh
+
+   ##
+   ## Add host id to known_hosts
+   ##
+   - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
+   - chmod 644 ~/.ssh/known_hosts
+
+
+
+build_only:
+  script:
+    - make
+    - make deploy
+    - rsync -avz prog_seq_c_tp ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/
+
+build_artifacts:
+  script:
+    - make
+  artifacts:
+    paths:
+      - "*.pdf"
+  only:
+    - tags
diff --git a/Makefile b/Makefile
index f49dd46653f54395ddf3118068807fdb20c014fb..20b008dbe431cca4208a6e5af67d31c8f9a4117b 100644
--- a/Makefile
+++ b/Makefile
@@ -26,6 +26,7 @@ deploy: all
 	mkdir -p prog_seq_c_tp/tris_multiples
 	cp tris_multiples.html prog_seq_c_tp/tris_multiples/index.html
 	cp tris_multiples.pdf prog_seq_c_tp/tris_multiples/tris_multiples.pdf
+	cp -r skeleton prog_seq_c_tp/tris_multiples/
 
 clean:
 	rm -rf *.html *.pdf prog_seq_c_tp
diff --git a/tris_multiples.md b/tris_multiples.md
index 4ff9e2cae902c8b07533269140176ec0ca7e7262..8a63032914be4ef3aa031c6da30c26a899716b46 100644
--- a/tris_multiples.md
+++ b/tris_multiples.md
@@ -31,7 +31,19 @@ L'objectif de ce travail pratique est d'implémenter les tris vus en cours. En p
 en C des tris par base et par fusion, puis si le temps
 le permet le tri par sélection et le tri rapide. Les pseudo-codes de ces tris se trouve dans [les slides du cours](https://malaspinas.academy/algo_cours/cours_7.pdf). Pour vous aider, on vous fournit un squelette que vous devez compléter.
 
-Vous aurez plusieurs tâches 
+Ce squelette (à télécharger ici) contient:
+
+1. Une fonction `main()` qui lit la ligne de commande, génère un tableau et permet de sélectionner son algorithme tri.
+2. Les signatures des fonctions des divers tris `radix_sort()`, `merge_sort()`, `selesction_sort()`, et `quick_sort()`. Ces fonctions prennent en argument un tableau et sa taille et modifie le tableau durant leurs exécutions. 
+3. L'affichage des tableaux `print()` et la vérification si le tri a réussi.
+
+Vous aurez plusieurs tâches.
+
+1. Diviser le code en différents fichiers et écrire un `Makefile`.
+2. Ajouter des variables `size`, `seed`, `sorting_algo_number` dans le code et lire la la ligne de commande pour faire en sorte que le code compile et s'exécute.
+3. Écrire le code C correspondant au tri par base et au tri par fusion.
+4. Écrire une fonction permettant de vérifier 
+5. En option ajouter le tri rapide et le tri par sélection.