diff --git a/.github/workflows/build-helloworld-vita.yml b/.github/workflows/build-helloworld-vita.yml
index c34ea306..8f980e8b 100644
--- a/.github/workflows/build-helloworld-vita.yml
+++ b/.github/workflows/build-helloworld-vita.yml
@@ -13,48 +13,16 @@ jobs:
         uses: actions/checkout@v2
 
       - name: Install Vita Toolchain
-        run: |
-          export PATH=$VITASDK/bin:$PATH
-          sudo apt-get install cmake
-          git clone https://github.com/vitasdk/vdpm
-          cd vdpm
-          ./bootstrap-vitasdk.sh
-          ./install-all.sh
+        run: ./ci/install-vita-toolchain.sh
 
       - name: Install Vita Packages
-        run: |
-          export PATH=$VITASDK/bin:$PATH
-          sudo apt-get install libarchive-tools
-          git clone https://github.com/vitasdk/packages.git
-          cd packages
-
-          dir_array=(
-            "glm"
-            "vitaShaRK"
-            "libmathneon"
-            "kubridge"
-            "SceShaccCgExt"
-            "vitaGL"
-          )
-          curdir=$(pwd)
-          for d in "${dir_array[@]}";do
-            echo "${curdir}${d}"
-            cd "${curdir}/${d}"
-            vita-makepkg -C -f -d
-            tar -C $VITASDK/arm-vita-eabi/ -xvf *-arm.tar.xz
-          done
+        run: ./ci/install-vita-packages.sh
 
       - name: Install Libraries
-        run: |
-          export PATH=$VITASDK/bin:$PATH
-          git submodule update --init --recursive
+        run: ./ci/install-libraries.sh
 
       - name: Build Tools
-        run: |
-          mkdir tools
-          cd tools
-          cmake .. -DDAWN_BUILD_TARGET=target-tools
-          make
+        run: ./ci/build-tools.sh
 
       - name: Build Game
         run: |
diff --git a/ci/build-tools.sh b/ci/build-tools.sh
new file mode 100755
index 00000000..1e2f793d
--- /dev/null
+++ b/ci/build-tools.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+mkdir tools
+cd tools
+cmake .. -DDAWN_BUILD_TARGET=target-tools
+make
\ No newline at end of file
diff --git a/ci/install-libraries.sh b/ci/install-libraries.sh
new file mode 100755
index 00000000..1b0c74c9
--- /dev/null
+++ b/ci/install-libraries.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+git submodule update --init --recursive
\ No newline at end of file
diff --git a/ci/install-vita-packages.sh b/ci/install-vita-packages.sh
new file mode 100755
index 00000000..50b53b81
--- /dev/null
+++ b/ci/install-vita-packages.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+export VITASDK=/usr/local/vitasdk
+export PATH=$VITASDK/bin:$PATH
+
+sudo apt-get install libarchive-tools
+git clone https://github.com/vitasdk/packages.git ~/vitapackages
+cd ~/vitapackages
+
+dir_array=(
+  "glm"
+  "vitaShaRK"
+  "libmathneon"
+  "kubridge"
+  "SceShaccCgExt"
+  "vitaGL"
+)
+
+curdir=$(pwd)
+for d in "${dir_array[@]}";do
+  echo "${curdir}${d}"
+  cd "${curdir}/${d}"
+  vita-makepkg -C -f -d
+  tar -C $VITASDK/arm-vita-eabi/ -xvf *-arm.tar.xz
+done
\ No newline at end of file
diff --git a/ci/install-vita-toolchain.sh b/ci/install-vita-toolchain.sh
new file mode 100755
index 00000000..0f09c816
--- /dev/null
+++ b/ci/install-vita-toolchain.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+export VITASDK=/usr/local/vitasdk
+export PATH=$VITASDK/bin:$PATH
+
+sudo apt-get install cmake
+git clone https://github.com/vitasdk/vdpm ~/vdpm
+cd ~/vdpm
+./bootstrap-vitasdk.sh
+./install-all.sh
\ No newline at end of file