diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1de017b9e6e40acbe93dbe02053514893eb52f38..40970d89c15068e425da53c322a28ef4fe4d046c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,13 +34,15 @@ build-flasher:
   stage: build-flasher
   script:
     - rm -rf flasher; mkdir flasher
-    - cd firmware-flasher # cd into submodule
-    - cp ../firmware.bin firmware.bin
-    - cargo build --release --target arm-unknown-linux-gnueabihf
-    - cargo build --release --target x86_64-pc-windows-gnu
-    - cp target/arm-unknown-linux-gnueabihf/release/stm32-firmware-flasher ../flasher/flasher-linux
-    - arm-linux-gnueabihf-strip ../flasher/flasher-linux
-    - cp target/x86_64-pc-windows-gnu/release/stm32-firmware-flasher.exe ../flasher/flasher-windows.exe
+    - >
+      (cd firmware-flasher && 
+       cp ../firmware.bin firmware.bin &&
+       cargo build --release --target arm-unknown-linux-gnueabihf &&
+       cargo build --release --target x86_64-pc-windows-gnu &&
+       cp target/arm-unknown-linux-gnueabihf/release/stm32-firmware-flasher ../flasher/flasher-linux &&
+       arm-linux-gnueabihf-strip ../flasher/flasher-linux &&
+       cp target/x86_64-pc-windows-gnu/release/stm32-firmware-flasher.exe ../flasher/flasher-windows.exe
+       )
   artifacts:
     paths:
       - flasher/*