diff --git a/build-plugins.sh b/build-plugins.sh
index aea0d6e943695c17a809248b4cd9b94093ca1846..764f6d0c2bda9247af39317c07dd9cebe08b112d 100755
--- a/build-plugins.sh
+++ b/build-plugins.sh
@@ -8,8 +8,8 @@ for dir in deadlock-plugins/*/; do
     echo "Building $dir"
     cd $dir
     CURRENT_PLUGIN_DIR=$(basename "$PWD")
-    npm install
-    npm run vsce
+    ./install.sh
+    ./build.sh CI_COMMIT_SHORT_SHA
     cp *.vsix ../../plugins/$CURRENT_PLUGIN_DIR-$CI_COMMIT_SHORT_SHA.vsix
     cd -
 done
diff --git a/build-recorder.sh b/build-recorder.sh
index c9ea7b8acd851cbbdcf692c246230b9993c082d5..cbc10ae700b07a41d1db8cd0e184e8305cc99e86 100755
--- a/build-recorder.sh
+++ b/build-recorder.sh
@@ -1,15 +1,17 @@
 #!/bin/sh
 
-# You must build deadlock-extension first /!\
-
 set -e
 
 OUTPUT_DIR='recorder-out'
 
-cp -r ./deadlock-plugins/deadlock-extension/out/* $OUTPUT_DIR
-cp ./deadlock-plugins/deadlock-extension/packa* $OUTPUT_DIR
-cd $OUTPUT_DIR
+cd ./deadlock-plugins/deadlock-extension/
+
 npm install
-npx webpack --env production 
+npm run build-recorder
+npm run build-preStop
+
+cd -
+cp -r ./deadlock-plugins/deadlock-extension/out/recorder.js $OUTPUT_DIR
+cp -r ./deadlock-plugins/deadlock-extension/out/preStop.js $OUTPUT_DIR
 
 
diff --git a/deadlock-plugins/README.md b/deadlock-plugins/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ca2964e1af6daece26bf7e804b3f4eb95b8ac591
--- /dev/null
+++ b/deadlock-plugins/README.md
@@ -0,0 +1,7 @@
+
+Contient une liste de dossier des extensions à construire pour ajouter à Theia pendant la phase de build.
+Chaque dossier d'extension doit contenir un fichier `install.sh` et `build.sh` qui doivent contenir
+respectivement la façon d'installer les dépendances et les executions pour construire la dépendance,
+c'est à dire créer un fichier `vsix` à la fin.
+
+Chaque fichier build.sh sera appelé avec comme premier argument le tag en cours.
\ No newline at end of file
diff --git a/deadlock-plugins/deadlock-extension/build.sh b/deadlock-plugins/deadlock-extension/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..77a6867456b2d485d48814efe422a3c5856ea6e5
--- /dev/null
+++ b/deadlock-plugins/deadlock-extension/build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+
+npm run build-extension
+npm run vsce
diff --git a/deadlock-plugins/deadlock-extension/install.sh b/deadlock-plugins/deadlock-extension/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a10ff26638379f39c30fb3df423a6f65513bbd51
--- /dev/null
+++ b/deadlock-plugins/deadlock-extension/install.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -e
+
+npm install
\ No newline at end of file
diff --git a/deadlock-plugins/deadlock-extension/package.json b/deadlock-plugins/deadlock-extension/package.json
index fdef4466fcd90fe9f01b09604af3857d2360446c..de61fd22708073a16d4597aa90a6a17fd99b89e0 100644
--- a/deadlock-plugins/deadlock-extension/package.json
+++ b/deadlock-plugins/deadlock-extension/package.json
@@ -54,7 +54,10 @@
   },
   "scripts": {
     "vsce": "vsce package",
-    "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node",
+    "esbuild-base": "esbuild --bundle --format=cjs --platform=node",
+    "build-extension": "npm run esbuild-base -- --external:vscode ./src/extension.ts --outfile=out/main.js --minify",
+    "build-recorder": "npm run esbuild-base -- ./src/recorder/index.ts --outfile=out/recorder.js --minify",
+    "build-preStop": "npm run esbuild-base -- ./src/recorder/preStop.ts --outfile=out/preStop.js --minify",
     "esbuild": "npm run esbuild-base -- --sourcemap",
     "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch",
     "lint": "eslint . --ext .ts,.tsx",