Skip to content

Commit 737fca3

Browse files
chore(ci): add disk space cleanup to lint and test jobs
- Extract disk cleanup logic into reusable action - Add free-disk-space step to run-unit-tests and run-lints jobs
1 parent c2eff65 commit 737fca3

File tree

2 files changed

+69
-53
lines changed

2 files changed

+69
-53
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: "Free disk space"
2+
description: "Remove pre-installed packages to free disk space on GitHub-hosted runners"
3+
4+
runs:
5+
using: "composite"
6+
steps:
7+
- name: "Free disk space"
8+
shell: bash
9+
run: |
10+
set -euo pipefail
11+
12+
sudo swapoff -a || true
13+
sudo rm -f /swapfile || true
14+
15+
mapfile -t purge_list < <(dpkg -l | awk '
16+
/^ii/ {
17+
p=$2
18+
if (p ~ /^(dotnet-.*|llvm-.*|php.*|mongodb-.*|mysql-.*)$/) print p
19+
}')
20+
sudo apt-get purge -y "${purge_list[@]:-}" azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri || true
21+
sudo apt-get autoremove -y --purge
22+
sudo apt-get clean
23+
sudo rm -rf /var/lib/apt/lists/*
24+
25+
sudo rm -rf \
26+
/opt/ghc \
27+
/opt/hostedtoolcache/CodeQL \
28+
/usr/local/.ghcup \
29+
/usr/local/graalvm \
30+
/usr/local/lib/android \
31+
/usr/local/share/chromium \
32+
/usr/local/share/powershell \
33+
/usr/share/dotnet \
34+
~/.cache/*
35+
36+
docker ps -q | xargs -r docker stop || true
37+
docker system prune -af --volumes || true
38+
docker builder prune -af || true
39+
docker buildx prune -af || true
40+
41+
- name: "Check disk space"
42+
shell: bash
43+
run: |
44+
echo ""
45+
46+
df -Th | awk 'NR == 1; NR > 1 {print $0 | "sort -n"}'
47+
48+
echo ""
49+
50+
lsblk -o MOUNTPOINT,FSTYPE,FSSIZE,FSAVAIL,FSUSE%,TYPE,NAME,ROTA,SIZE,MODEL,UUID

.github/workflows/cli.yml

Lines changed: 19 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -54,51 +54,17 @@ jobs:
5454
- x86_64-unknown-linux-musl
5555

5656
steps:
57+
- name: "Checkout code"
58+
uses: actions/checkout@v5
59+
with:
60+
fetch-depth: 1
61+
submodules: true
62+
5763
- name: "Set up Docker Buildx"
5864
uses: docker/setup-buildx-action@v3
5965

6066
- name: "Free disk space"
61-
run: |
62-
set -euo pipefail
63-
64-
sudo swapoff -a || true
65-
sudo rm -f /swapfile || true
66-
67-
mapfile -t purge_list < <(dpkg -l | awk '
68-
/^ii/ {
69-
p=$2
70-
if (p ~ /^(dotnet-.*|llvm-.*|php.*|mongodb-.*|mysql-.*)$/) print p
71-
}')
72-
sudo apt-get purge -y "${purge_list[@]:-}" azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri || true
73-
sudo apt-get autoremove -y --purge
74-
sudo apt-get clean
75-
sudo rm -rf /var/lib/apt/lists/*
76-
77-
sudo rm -rf \
78-
/opt/ghc \
79-
/opt/hostedtoolcache/CodeQL \
80-
/usr/local/.ghcup \
81-
/usr/local/graalvm \
82-
/usr/local/lib/android \
83-
/usr/local/share/chromium \
84-
/usr/local/share/powershell \
85-
/usr/share/dotnet \
86-
~/.cache/*
87-
88-
docker ps -q | xargs -r docker stop || true
89-
docker system prune -af --volumes || true
90-
docker builder prune -af || true
91-
docker buildx prune -af || true
92-
93-
- name: "Check disk space"
94-
run: |
95-
echo ""
96-
97-
df -Th | awk 'NR == 1; NR > 1 {print $0 | "sort -n"}'
98-
99-
echo ""
100-
101-
lsblk -o MOUNTPOINT,FSTYPE,FSSIZE,FSAVAIL,FSUSE%,TYPE,NAME,ROTA,SIZE,MODEL,UUID
67+
uses: ./.github/actions/free-disk-space
10268

10369
- name: "Setup environment (release)"
10470
if: endsWith(github.ref, '/release')
@@ -115,12 +81,6 @@ jobs:
11581
run: |
11682
echo "DATA_FULL_DOMAIN=https://data.master.clades.nextstrain.org/v3" >> $GITHUB_ENV
11783
118-
- name: "Checkout code"
119-
uses: actions/checkout@v5
120-
with:
121-
fetch-depth: 1
122-
submodules: true
123-
12484
- name: "Get docker build checksum"
12585
id: docker-build-checksum
12686
run: echo "checksum=$(./scripts/docker_build_checksum.sh)" >> $GITHUB_OUTPUT
@@ -197,15 +157,18 @@ jobs:
197157
runs-on: ubuntu-22.04
198158

199159
steps:
200-
- name: "Set up Docker Buildx"
201-
uses: docker/setup-buildx-action@v3
202-
203160
- name: "Checkout code"
204161
uses: actions/checkout@v5
205162
with:
206163
fetch-depth: 1
207164
submodules: true
208165

166+
- name: "Set up Docker Buildx"
167+
uses: docker/setup-buildx-action@v3
168+
169+
- name: "Free disk space"
170+
uses: ./.github/actions/free-disk-space
171+
209172
- name: "Get docker build checksum"
210173
id: docker-build-checksum
211174
run: echo "checksum=$(./scripts/docker_build_checksum.sh)" >> $GITHUB_OUTPUT
@@ -248,15 +211,18 @@ jobs:
248211
runs-on: ubuntu-22.04
249212

250213
steps:
251-
- name: "Set up Docker Buildx"
252-
uses: docker/setup-buildx-action@v3
253-
254214
- name: "Checkout code"
255215
uses: actions/checkout@v5
256216
with:
257217
fetch-depth: 1
258218
submodules: true
259219

220+
- name: "Set up Docker Buildx"
221+
uses: docker/setup-buildx-action@v3
222+
223+
- name: "Free disk space"
224+
uses: ./.github/actions/free-disk-space
225+
260226
- name: "Get docker build checksum"
261227
id: docker-build-checksum
262228
run: echo "checksum=$(./scripts/docker_build_checksum.sh)" >> $GITHUB_OUTPUT

0 commit comments

Comments
 (0)