diff --git a/push_image_to_registry.sh b/push_image_to_registry.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3a58d5fc7140a1e214d1d0b5eb2766af94d3ba9d
--- /dev/null
+++ b/push_image_to_registry.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+#!/bin/bash
+DIR=$(realpath $(dirname $0))
+docker login registry.gitlab.tetras-libre.fr
+docker build -t registry.gitlab.tetras-libre.fr/rekall/memorekall-member-new $DIR/docker/symfony
+docker push registry.gitlab.tetras-libre.fr/rekall/memorekall-member-new 
diff --git a/tools/ci-job.sh b/tools/ci-job.sh
index 4717f4a11e20300be496552cd09d9442ddb4fffa..16b97f6306653c238ebec530ce9da9ca83ec9b5d 100755
--- a/tools/ci-job.sh
+++ b/tools/ci-job.sh
@@ -1,16 +1,27 @@
 #!/bin/bash
-exit_on_fail(){
-    if [ $1 -ne 0 ];
+REDBOLD='\033[0;31;1m'
+GREENBOLD='\033[0;32;1m'
+BOLD='\033[1m'
+NORMAL='\033[0m'
+run_step(){
+    name=$1
+    shift
+    echo -e "${BOLD} Running step : $name ${NORMAL}"
+    $@
+    ret=$?
+    if [ $ret -ne 0 ];
     then
-        echo "Failed $2"
-        exit $1
+        echo -e "${REDBOLD}$name failed${NORMAL}"
+        exit $ret
+    else
+        echo -e "${GREENBOLD}$name sucess${NORMAL}"
     fi
 }
-composer install
-exit_on_fail $? "PHP dependencies"
-npm install
-exit_on_fail $? "Javascript dependencies"
-npm run dev
-exit_on_fail $? "Building assets"
-composer ci
-exit_on_fail $? "Tests"
+
+run_step "PHP dependencies" composer install
+run_step "Javascript dependencies" npm install
+run_step "Assets compilation" npm run dev
+run_step "Unit and functional tests" composer tests
+run_step "Php Code Sniffer" composer phpcs
+run_step "Php Static analysis" composer phpstan
+run_step "Javascript ESLint" npm run lint