ci: clear the target dir if it gets too big

Max Brunsfeld created

Change summary

.github/workflows/ci.yml               |  6 ++++++
script/clear-target-dir-if-larger-than | 20 ++++++++++++++++++++
2 files changed, 26 insertions(+)

Detailed changes

.github/workflows/ci.yml 🔗

@@ -62,6 +62,9 @@ jobs:
           clean: false
           submodules: 'recursive'
 
+      - name: Limit target directory size
+        run: script/clear-target-dir-if-larger-than 70
+
       - name: Run check
         run: cargo check --workspace
 
@@ -110,6 +113,9 @@ jobs:
           clean: false
           submodules: 'recursive'
 
+      - name: Limit target directory size
+        run: script/clear-target-dir-if-larger-than 70
+
       - name: Determine version and release channel
         if: ${{ startsWith(github.ref, 'refs/tags/v') }}
         run: |

script/clear-target-dir-if-larger-than 🔗

@@ -0,0 +1,20 @@
+#!/bin/bash
+
+set -eu
+
+if [[ $# < 1 ]]; then
+    echo "usage: $0 <MAX_SIZE_IN_GB>"
+    exit 1
+fi
+
+max_size_gb=$1
+
+current_size=$(du -s target | cut -f1)
+current_size_gb=$(expr ${current_size} / 1024 / 1024)
+
+echo "target directory size: ${current_size_gb}gb. max size: ${max_size_gb}gb"
+
+if [[ ${current_size_gb} -gt ${max_size_gb} ]]; then
+    echo "clearing target directory"
+    rm -rf target
+fi