GitHub Actionsのmacos-latestで ディスク容量が不足した時のWorkaround
TL;DR
Mac/iOSアプリを開発するわけではなく、単にMacという実行環境が欲しいだけの場合には、GitHub Actionsにプリインストールされている開発キット群を削除することで 100GBに迫る容量を追加で空けることができた
詳細はページ最下部の結論をお読みくださいyuseiito.icon
経緯
No disk space left on device
belle というホストは、yuseiito.icon のメインのMacBook Proを指していて、1TB のSSDのあるホスト向けの設定なので、容赦無く大量のアプリを入れている. そういうわけで、クラウドのCIでは容量が不足してしまったらしい。
しかし、せっかくならCIしたいので、なんとかならないの? と粘ってみた. わかったことは以下
GitHub Actionsのインスタンスには、便利にするために事前にいろんなバイナリが同梱されている
.NETとか、Androind開発のツールチェーンとか
ubuntu 環境向けには、それらの依存関係を綺麗に掃除するための野良Actionが複数提供されている
macos-latest環境では、そのようなツールはなく、それぞれの人が独自に消している
そこで、Claude Codeと一緒に少しインスタンスの中を探検してみた
1. とりあえず消す
なんか、Claude Codeが野良で生成してきたやつを、そのまま実行してみる→無意味だった
自分の環境だったらいやだけど、CIだしいいか(?)みたいな
https://scrapbox.io/files/69a871eff1c53c1732238515.png
code: 実行結果 stdout
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 475M 0% /
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 475M 0% /
yuseiito.icon 変わってないね. 何も消せてない
2. そういうわけで、とりあえずduで探る
code: stdout
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 476M 0% /
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 476M 0% /
--- Largest directories ---
405G /System
55G /Library
42G /Applications
28G /Users
8.5G /opt
2.2G /usr
2.0G /private
4.1M /bin
2.0M /sbin
4.5K /dev
0B /Volumes
0B /var
0B /tmp
0B /home
0B /etc
0B /cores
ははーんyuseiito.icon
/Systemの405GBに手をつけるのは厳しいので、/Libraryと/Applications をみてみる
3. /Library と /Applications の中身を探る
code: stdout
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 470M 0% /
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 470M 0% /
--- /Applications ---
4.7G /Applications/Xcode_16.3.app
4.6G /Applications/Xcode_16.4.app
4.4G /Applications/Xcode_16.app
4.4G /Applications/Xcode_16.2.app
4.3G /Applications/Xcode_26.3_Release_Candidate_2.app
4.3G /Applications/Xcode_26.2.app
4.3G /Applications/Xcode_26.1.1.app
4.3G /Applications/Xcode_16.1.app
4.2G /Applications/Xcode_26.0.1.app
911M /Applications/Microsoft Edge.app
659M /Applications/Google Chrome.app
459M /Applications/Firefox.app
330M /Applications/Google Chrome for Testing.app
1.2M /Applications/Python 3.14
1.2M /Applications/Python 3.13
1.2M /Applications/Python 3.12
1.2M /Applications/Python 3.11
276K /Applications/PowerShell.app
0B /Applications/Xcode.app
0B /Applications/Xcode_26.3.app
--- /Library ---
53G /Library/Developer
1.2G /Library/Frameworks
59M /Library/Apple
41M /Library/Application Support
12M /Library/Caches
11M /Library/WebServer
9.4M /Library/Documentation
6.5M /Library/Logs
5.0M /Library/Keychains
1.8M /Library/Ruby
完全に理解した.
どうやらXcodeの色々なバージョンがかなり入っていて邪魔をしていそうですね。
今回、dotfilesのセットアップに使われるのは XCode Command Line Tools (コンパイラ関係とか) で、それは /Library/Developer/CommandLineTools にあるはずなので、ここにあるXcode.appは不要です. (iOS開発等をこの中でするわけではないので)
それから /Library/Developer も やけに大きいです。
4. もうちょっと詳しくみてみる
code: stdout
Run # Show available disk space before cleanup
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 476M 0% /
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 476M 0% /
--- /Applications ---
4.7G /Applications/Xcode_16.3.app
4.6G /Applications/Xcode_16.4.app
4.4G /Applications/Xcode_16.app
4.4G /Applications/Xcode_16.2.app
4.3G /Applications/Xcode_26.3_Release_Candidate_2.app
4.3G /Applications/Xcode_26.2.app
4.3G /Applications/Xcode_26.1.1.app
4.3G /Applications/Xcode_16.1.app
4.2G /Applications/Xcode_26.0.1.app
911M /Applications/Microsoft Edge.app
659M /Applications/Google Chrome.app
459M /Applications/Firefox.app
330M /Applications/Google Chrome for Testing.app
1.2M /Applications/Python 3.14
1.2M /Applications/Python 3.13
1.2M /Applications/Python 3.12
1.2M /Applications/Python 3.11
276K /Applications/PowerShell.app
0B /Applications/Xcode.app
0B /Applications/Xcode_26.3.app
--- /Library ---
53G /Library/Developer
1.2G /Library/Frameworks
59M /Library/Apple
41M /Library/Application Support
12M /Library/Caches
11M /Library/WebServer
9.4M /Library/Documentation
6.5M /Library/Logs
5.0M /Library/Keychains
1.8M /Library/Ruby
--- /Library/Developer ---
51G /Library/Developer/CoreSimulator
1.8G /Library/Developer/CommandLineTools
72M /Library/Developer/DeveloperDiskImages
71M /Library/Developer/CoreDevice
25M /Library/Developer/PrivateFrameworks
5.2M /Library/Developer/DeviceKit
シミュレータ、でかいな
iOSやMacアプリの開発をされる方のテストには便利なんでしょうが、私には全く不要です。
結論
iOS/Macアプリの開発をするわけではない という、「なんのためにMac使うのん?」という条件付きではありますが、
すべてのXcode.app
CoreSimulator
そのほか /Library/Developer 以下にある小さなライブラリ群
を削除することで、100GB程度の空きを新たに生み出せる ことがわかりました。 ログ code: stdout
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 45Gi 19% 427k 477M 0% /
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s1s1 320Gi 10Gi 137Gi 8% 427k 1.4G 0% /
code: .github/workflows/workflowに追加すると容量が空いて幸せになれるスニペット.yml
- name: Free disk space
run: |
df -h /
# Switch to CLI tools before removing Xcode apps
sudo xcode-select -s /Library/Developer/CommandLineTools
# Remove all Xcode app versions - ~38 GB
sudo rm -rf /Applications/Xcode*.app
# Remove Xcode simulator runtimes - ~51 GB
sudo rm -rf /Library/Developer/CoreSimulator
# Remove other Xcode developer files (keep CommandLineTools)
sudo rm -rf /Library/Developer/DeveloperDiskImages
sudo rm -rf /Library/Developer/CoreDevice
sudo rm -rf /Library/Developer/PrivateFrameworks
sudo rm -rf /Library/Developer/DeviceKit
df -h /