diff --git a/.github/workflow/ci.yml b/.github/workflow/ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e94219d90e6caf87152d84c5556b34af12ccd80c
--- /dev/null
+++ b/.github/workflow/ci.yml
@@ -0,0 +1,29 @@
+name: Java CI
+
+on:
+  push:
+    branches:
+      - main  # Exécuter les tests quand on push sur la branche "main"
+  pull_request:
+    branches:
+      - main  # Exécuter les tests lors d'un Pull Request vers "main"
+
+jobs:
+  test:
+    runs-on: ubuntu-latest  # Utiliser Ubuntu comme environnement
+
+    steps:
+      - name: Checkout du code
+        uses: actions/checkout@v3
+
+      - name: Configurer Java
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'  # JDK OpenJDK de Eclipse Temurin
+          java-version: '17'       # Remplace par ta version si nécessaire
+
+      - name: Compiler le projet avec Maven
+        run: mvn clean package
+
+      - name: Exécuter les tests Maven
+        run: mvn test
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e94219d90e6caf87152d84c5556b34af12ccd80c
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,29 @@
+name: Java CI
+
+on:
+  push:
+    branches:
+      - main  # Exécuter les tests quand on push sur la branche "main"
+  pull_request:
+    branches:
+      - main  # Exécuter les tests lors d'un Pull Request vers "main"
+
+jobs:
+  test:
+    runs-on: ubuntu-latest  # Utiliser Ubuntu comme environnement
+
+    steps:
+      - name: Checkout du code
+        uses: actions/checkout@v3
+
+      - name: Configurer Java
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'temurin'  # JDK OpenJDK de Eclipse Temurin
+          java-version: '17'       # Remplace par ta version si nécessaire
+
+      - name: Compiler le projet avec Maven
+        run: mvn clean package
+
+      - name: Exécuter les tests Maven
+        run: mvn test
diff --git a/src/main/java/algorithms/Fibonacci.java b/src/main/java/algorithms/Fibonacci.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea2b72cd5605d173ee5966d74d2fcee1e53c19a6
--- /dev/null
+++ b/src/main/java/algorithms/Fibonacci.java
@@ -0,0 +1,10 @@
+package algorithms;
+
+public class Fibonacci {
+    public static int calculate(int n){
+        if(n <= 1){
+            return n;
+        }
+        return calculate(n-1) + calculate(n-2);
+    }
+}
diff --git a/src/test/java/FactorialTest.java b/src/test/java/AlgorithmTest.java
similarity index 59%
rename from src/test/java/FactorialTest.java
rename to src/test/java/AlgorithmTest.java
index 7b59bc81055847cabc1ab610f3a38ea7033442ff..72c6f87f48316376026e3a95975e01dd5b658dac 100644
--- a/src/test/java/FactorialTest.java
+++ b/src/test/java/AlgorithmTest.java
@@ -1,14 +1,21 @@
 import algorithms.Factorial;
+import algorithms.Fibonacci;
 import org.javagrader.Grade;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;
 
 @Grade
-public class FactorialTest {
+public class AlgorithmTest {
     @Test
     @Grade(value = 1)
     public void testFactorial(){
         assertEquals(6, Factorial.calculate(3));
     }
-}
+
+    @Test
+    @Grade(value = 1)
+    public void testFibonacci(){
+        assertEquals(55, Fibonacci.calculate(10));
+    }
+}
\ No newline at end of file