Skip to content

Commit 03331f5

Browse files
andre-j3susleokondrashov
authored andcommitted
Add disk cleanup step to GitHub Actions runner before tests
Some tests were failing due to insufficient disk space on the GitHub Actions runner. This commit adds a pre-test cleanup step that removes large, unused packages and SDKs to reclaim space and improve CI reliability. Signed-off-by: André Jesus <[email protected]>
1 parent 77ac8b9 commit 03331f5

File tree

3 files changed

+75
-7
lines changed

3 files changed

+75
-7
lines changed

.github/workflows/unit_tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ jobs:
143143
sudo apt update
144144
sudo apt install rsync -y
145145
146+
- name: Cleanup runner disk space
147+
run: ./scripts/github_runner/gh-actions-disk-cleanup.sh
148+
146149
- name: Build setup scripts
147150
run: pushd scripts && go build -o setup_tool && popd
148151

ctriface/Makefile

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,24 @@ BENCHFILES:=bench_test.go iface.go orch_options.go orch.go
2828
# WITHLAZY:=-lazy
2929
WITHUPF:=
3030
WITHLAZY:=
31-
STARGZ:=-ss 'proxy'
32-
STARGZ_IMAGE:=-img 'ghcr.io/vhive-serverless/helloworld:var_workload-esgz'
31+
STARGZ:=-ss 'proxy' -img 'ghcr.io/vhive-serverless/helloworld:var_workload-esgz'
3332
DOCKER_CREDENTIALS:=-dockerCredentials '{"docker-credentials":{"ghcr.io":{"username":"","password":""}}}'
3433
GOBENCH:=-v -timeout 1500s
3534
CTRDLOGDIR:=/tmp/ctrd-logs
3635

3736
test:
38-
./../scripts/clean_fcctr.sh
39-
sudo env "PATH=$(PATH)" /usr/local/bin/http-address-resolver &
40-
sudo env "PATH=$(PATH)" /bin/bash -c 'while true; do /usr/local/bin/demux-snapshotter; done' &
41-
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/ctriface_log.out 2>$(CTRDLOGDIR)/ctriface_log.err &
42-
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) $(EXTRAGOARGS) -args $(STARGZ) $(DOCKER_CREDENTIALS) $(STARGZ_IMAGE)
4337
./../scripts/clean_fcctr.sh
4438
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/ctriface_log.out 2>$(CTRDLOGDIR)/ctriface_log.err &
4539
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) $(EXTRAGOARGS)
4640
./../scripts/clean_fcctr.sh
4741
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/ctriface_log.out 2>$(CTRDLOGDIR)/ctriface_log.err &
4842
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) $(EXTRAGOARGS) -args $(WITHUPF)
4943
./../scripts/clean_fcctr.sh
44+
sudo env "PATH=$(PATH)" /usr/local/bin/http-address-resolver &
45+
sudo env "PATH=$(PATH)" /bin/bash -c 'while true; do /usr/local/bin/demux-snapshotter; done' &
46+
sudo mkdir -m777 -p $(CTRDLOGDIR) && sudo env "PATH=$(PATH)" /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml 1>$(CTRDLOGDIR)/ctriface_log.out 2>$(CTRDLOGDIR)/ctriface_log.err &
47+
sudo env "PATH=$(PATH)" go test $(EXTRATESTFILES) $(EXTRAGOARGS) -args $(STARGZ) $(DOCKER_CREDENTIALS)
48+
./../scripts/clean_fcctr.sh
5049

5150
test-man:
5251
./../scripts/clean_fcctr.sh
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
# cleanup-runner-space.sh
3+
# Frees up disk space on GitHub Actions runners by removing large preinstalled packages and directories.
4+
5+
set -euo pipefail
6+
7+
echo "=============================================================================="
8+
echo "Freeing up disk space on GitHub Actions runner 🧹"
9+
echo "=============================================================================="
10+
11+
echo ""
12+
echo "Initial disk usage:"
13+
df -h
14+
15+
echo ""
16+
echo "Removing large unused packages..."
17+
18+
# Remove specific packages by pattern (ignore errors gracefully)
19+
remove_patterns=(
20+
'^ghc-8.*'
21+
'^dotnet-.*'
22+
'^llvm-.*'
23+
'php.*'
24+
)
25+
26+
for pattern in "${remove_patterns[@]}"; do
27+
echo " - Removing packages matching: $pattern"
28+
sudo apt-get remove -y "$pattern" || true
29+
done
30+
31+
# Remove specific large individual packages
32+
large_packages=(
33+
azure-cli
34+
google-cloud-sdk
35+
hhvm
36+
google-chrome-stable
37+
firefox
38+
powershell
39+
mono-devel
40+
)
41+
42+
echo " - Removing known large packages..."
43+
sudo apt-get remove -y "${large_packages[@]}" || true
44+
45+
echo ""
46+
echo "Cleaning up unused dependencies and package cache..."
47+
sudo apt-get autoremove -y
48+
sudo apt-get clean
49+
50+
echo ""
51+
echo "Removing large directories..."
52+
53+
large_dirs=(
54+
/usr/share/dotnet/
55+
/opt/ghc
56+
/usr/local/lib/android
57+
)
58+
59+
for dir in "${large_dirs[@]}"; do
60+
echo " - Deleting: $dir"
61+
sudo rm -rf "$dir"
62+
done
63+
64+
echo ""
65+
echo "✅ Disk usage after cleanup:"
66+
df -h

0 commit comments

Comments
 (0)