From 523fba506cf0207f8fdb0d96363038f86c4d510e Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Wed, 8 Nov 2023 15:32:15 +0100
Subject: [PATCH] added gitlab-ci

---
 .gitignore        |  3 +++
 .gitlab-ci.yml    | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 Makefile          |  1 +
 tris_multiples.md | 14 +++++++++++++-
 4 files changed, 64 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e4b9e86
--- /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 0000000..a1df40a
--- /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 f49dd46..20b008d 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 4ff9e2c..8a63032 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.
 
 
 
-- 
GitLab