diff --git a/.github/workflows/build-gluon.yml b/.github/workflows/build-gluon.yml
index 00747c3d259d9a8905140ad31c6250c58a6c8598..dd2600456a799d72901dfa9c8b2dc39cc6c29439 100644
--- a/.github/workflows/build-gluon.yml
+++ b/.github/workflows/build-gluon.yml
@@ -19,9 +19,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ar71xx-generic
+        run: contrib/actions/run-build.sh ar71xx-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -40,9 +40,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ar71xx-tiny
+        run: contrib/actions/run-build.sh ar71xx-tiny
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -61,9 +61,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ar71xx-nand
+        run: contrib/actions/run-build.sh ar71xx-nand
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -82,9 +82,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ath79-generic
+        run: contrib/actions/run-build.sh ath79-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -103,9 +103,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh brcm2708-bcm2708
+        run: contrib/actions/run-build.sh brcm2708-bcm2708
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -124,9 +124,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh brcm2708-bcm2709
+        run: contrib/actions/run-build.sh brcm2708-bcm2709
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -145,9 +145,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ipq40xx-generic
+        run: contrib/actions/run-build.sh ipq40xx-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -166,9 +166,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ipq806x-generic
+        run: contrib/actions/run-build.sh ipq806x-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -187,9 +187,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh lantiq-xrx200
+        run: contrib/actions/run-build.sh lantiq-xrx200
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -208,9 +208,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh lantiq-xway
+        run: contrib/actions/run-build.sh lantiq-xway
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -229,9 +229,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh mpc85xx-generic
+        run: contrib/actions/run-build.sh mpc85xx-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -250,9 +250,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh mpc85xx-p1020
+        run: contrib/actions/run-build.sh mpc85xx-p1020
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -271,9 +271,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ramips-mt7620
+        run: contrib/actions/run-build.sh ramips-mt7620
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -292,9 +292,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ramips-mt7621
+        run: contrib/actions/run-build.sh ramips-mt7621
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -313,9 +313,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ramips-mt76x8
+        run: contrib/actions/run-build.sh ramips-mt76x8
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -334,9 +334,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ramips-rt305x
+        run: contrib/actions/run-build.sh ramips-rt305x
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -355,9 +355,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh sunxi-cortexa7
+        run: contrib/actions/run-build.sh sunxi-cortexa7
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -376,9 +376,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh x86-generic
+        run: contrib/actions/run-build.sh x86-generic
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -397,9 +397,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh x86-geode
+        run: contrib/actions/run-build.sh x86-geode
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -418,9 +418,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh x86-64
+        run: contrib/actions/run-build.sh x86-64
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -439,9 +439,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh ar71xx-mikrotik
+        run: contrib/actions/run-build.sh ar71xx-mikrotik
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -460,9 +460,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh brcm2708-bcm2710
+        run: contrib/actions/run-build.sh brcm2708-bcm2710
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
@@ -481,9 +481,9 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh mvebu-cortexa9
+        run: contrib/actions/run-build.sh mvebu-cortexa9
       - name: Archive build logs
         if: ${{ !cancelled() }}
         uses: actions/upload-artifact@v1
diff --git a/contrib/actions/generate-actions.py b/contrib/actions/generate-actions.py
index fa31134e8549ba4921a15fb36e83a2e0370be814..d0a82dfdb23b81f95feffaf598753579f838e700 100755
--- a/contrib/actions/generate-actions.py
+++ b/contrib/actions/generate-actions.py
@@ -25,9 +25,9 @@ ACTIONS_TARGET="""
     steps:
       - uses: actions/checkout@v1
       - name: Install Dependencies
-        run: bash contrib/actions/install-dependencies.sh
+        run: sudo contrib/actions/install-dependencies.sh
       - name: Build
-        run: bash contrib/actions/run-build.sh {target_name}
+        run: contrib/actions/run-build.sh {target_name}
       - name: Archive build logs
         if: ${{{{ !cancelled() }}}}
         uses: actions/upload-artifact@v1
diff --git a/contrib/actions/install-dependencies.sh b/contrib/actions/install-dependencies.sh
index 3aebc831262c4d7577d78554e5f5a4023d56d30d..60e4a9ee9a387b0ed64880c59b6a97d8491b8e4b 100755
--- a/contrib/actions/install-dependencies.sh
+++ b/contrib/actions/install-dependencies.sh
@@ -1,7 +1,10 @@
-#!/bin/bash
-sudo cp contrib/actions/sources.list /etc/apt/sources.list
-sudo rm -rf /etc/apt/sources.list.d
-sudo apt update
-sudo apt install git subversion build-essential python gawk unzip libncurses5-dev zlib1g-dev libssl-dev wget time || exit 1
-sudo apt clean
-sudo rm -rf /var/lib/apt/lists/*
+#!/bin/sh
+
+set -e
+
+cp contrib/actions/sources.list /etc/apt/sources.list
+rm -rf /etc/apt/sources.list.d
+apt update
+apt install git subversion build-essential python gawk unzip libncurses5-dev zlib1g-dev libssl-dev wget time
+apt clean
+rm -rf /var/lib/apt/lists/*
diff --git a/contrib/actions/run-build.sh b/contrib/actions/run-build.sh
index 3898cf7b317184354a5d13a4af3c032032c87ef6..c3a279774e82a8afbfa95ac191c990c4f1c74bb3 100755
--- a/contrib/actions/run-build.sh
+++ b/contrib/actions/run-build.sh
@@ -1,4 +1,6 @@
-#!/bin/bash
+#!/bin/sh
+
+set -e
 
 export BROKEN=1
 export GLUON_AUTOREMOVE=1