Renew Scripts

- Add Support For Both Ubuntu Focal and Bionic Runners
- Update README
- Added branding

Signed-off-by: rokibhasansagar <rokibhasansagar2014@outlook.com>
This commit is contained in:
rokibhasansagar 2021-03-02 01:13:13 +06:00
parent 4da5305d64
commit fd0023c401
No known key found for this signature in database
GPG key ID: 2A43163956D6C2A7
3 changed files with 90 additions and 177 deletions

View file

@ -1,7 +1,8 @@
# *rokibhasansagar/slimhub_actions@main*
![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/rokibhasansagar/slimhub_actions?label=Latest%20Tag&?cacheSeconds=600)
### *GitHub Actions Cleaner*
![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/rokibhasansagar/slimhub_actions?label=Latest%20Tag&?cacheSeconds=300)
## *GitHub Actions Cleaner*
A simple composite run steps action to clean the GitHub Actions environment to bare minimum.
When you don't really need any extra software rather than core functions of Ubuntu itself, you would want to use this.
@ -12,63 +13,30 @@ That gives you only 22GB playground.
But with this action, you can gain up to 78GB! That means around 56GB can be freed!
>More space can be gained. Work is undergoing to achieve that.
## *Requirement*
Nothing really, just your Actions Runner needs to be run on **ubuntu-20.04**.
```yaml
jobs:
build:
runs-on: ubuntu-20.04
```
Bionic support will be added later.
## *How To Use*
Your Workflow must run on Ubuntu Runners, bionic or focal.
```yaml
steps:
# ...
# You might want to Checkout your repo first, but not necessary.
jobs:
slim_build:
runs-on: ubuntu-latest
# You can use either of the ubuntu-18.04 or ubuntu-20.04 runner
steps:
# You might want to Checkout your repo first, but not mandatory
- uses: actions/checkout@v2
# Cleanup The Actions Workspace Using Custom Composite Run Actions
- uses: rokibhasansagar/slimhub_actions@main
# That's it! Now use your normal steps
# ...
```
## *Things Removed*
### *What Are Removed*
The main programs removed by this action are -
```text
- adoptopenjdk-11 & adoptopenjdk-8
- android-sdk and ndk
- ant, apache-maven, gradle, hhvm, julia, lein
- swift, miniconda
- azure-cli, aws-cli, vim
- buildah, ghc
- cabal*
- clang-9,clang-8, llvm-8 & lld-8
- Docker Image Caches
- dotnet, graalvm, powershell
- erlang, php*, ruby, rake, rust & swig
- gcc-7, g++-7, cpp-7
- gcc-8, g++-8, cpp-8
- groff-base
- firefox
- google*
- Homebrew
- hostedtoolcache preconfigured packages
- heroku
- imagemagick*
- libreoffice*
- man-db & manpages
- mongodb, mysql & postgresql
- mono*
- mercurial, subversion
- node_modules
- phantomjs, chrome_driver, gecko_driver, xvfb
- python2 & pip local packages
- podman
```
*Yet, More To Remove In The Future*
See the [script](cleanup.sh) itself to know what exactly are stripped.
Don't cry if any further steps using other Actions or scripts fail due to *command not found*. You have to manually install every prerequisite programs which would seem to be unavailable to run your particular script(s).
## *Inspired By*

View file

@ -7,4 +7,6 @@ runs:
- run: $GITHUB_ACTION_PATH/cleanup.sh
name: 'Cleanup'
shell: bash
branding:
icon: 'layers'
color: 'blue'

View file

@ -12,7 +12,7 @@ export DEBIAN_FRONTEND=noninteractive
while ((${SECONDS_LEFT:=5} > 0)); do
printf "Please wait %ss ...\n" "${SECONDS_LEFT}"
sleep 1
SECONDS_LEFT=$((${SECONDS_LEFT} - 1))
SECONDS_LEFT=$((SECONDS_LEFT - 1))
done
unset SECONDS_LEFT
@ -25,101 +25,39 @@ docker rmi -f $(docker images -q) &>/dev/null
echo "::endgroup::"
echo "::group::Uninstalling Unnecessary Applications"
sudo -E apt-get -qq -y update &>/dev/null
sudo -E apt-get -qq -y purge \
adoptopenjdk-* \
adwaita-icon-theme \
aisleriot \
alsa-* \
ant* \
ansible \
apache2* \
apport* \
aspnetcore-* \
azure-cli \
sudo -EH apt-get -qq -y update &>/dev/null
REL=$(grep "UBUNTU_CODENAME" /etc/os-release | cut -d'=' -f2)
if [[ ${REL} == "focal" ]]; then
APT_Pac4Purge="alsa-topology-conf alsa-ucm-conf python2 python2-minimal libpython-dev clang-9 clang-format-9"
elif [[ ${REL} == "bionic" ]]; then
APT_Pac4Purge="clang-6.0 clang-format-6.0 llvm-6.0-dev lld-6.0"
fi
unset REL
sudo -EH apt-get -qq -y purge \
${APT_Pac4Purge} \
adoptopenjdk-* openjdk* ant* sbt \
*-icon-theme plymouth *-theme* fonts-* gsfonts gtk-update-icon-cache \
ansible google-cloud-sdk heroku \
apache2* nginx msodbcsql* mssql-tools mysql* libmysqlclient* unixodbc-dev postgresql* libpq-dev odbcinst* mongodb-* sphinxsearch \
apport* popularity-contest \
aspnetcore-* dotnet* \
azure-cli session-manager-plugin \
bazel* \
brltty \
buildah \
byobu \
cabal-* \
chromium-browser \
clang-8 clang-format-8 \
clang-9 clang-format-9 \
cpp-7 cpp-8 \
dotnet* \
duplicity \
empathy \
empathy-common \
erlang* esl-erlang \
example-content \
firebird* firefox \
fontconfig* fonts-* \
g++-7* gcc-7* \
g++-8* gcc-8* \
gfortran* \
gh \
ghc* \
gnome-accessibility-themes \
google-chrome* google-cloud-sdk \
groff-base \
gsfonts \
gtk-update-icon-cache \
heroku \
hhvm \
hicolor-icon-theme \
htop \
humanity-icon-theme \
imagemagick* \
info \
install-info \
irqbalance \
kubectl \
landscape-common \
libclang1-8 libclang-common-8-dev \
libmono-* \
libpython2* \
libreoffice-* \
libsane libsane-common \
lld-8 llvm-8* \
brltty byobu htop \
buildah hhvm kubectl packagekit* podman podman-plugins skopeo \
chromium-browser firebird* firefox google-chrome* xvfb \
clang-8 clang-format-8 cpp-7 cpp-8 lld-8 llvm-8* \
esl-erlang ghc-* groff-base rake r-base* r-cran-* r-recommended ruby* swig* \
g++-7* gcc-7* g++-8* gcc-8* gfortran* \
gh subversion mercurial mercurial-common \
info install-info landscape-common \
libpython2* imagemagick* vim vim-* \
man-db manpages \
mercurial mercurial-common \
mongodb-* \
mono-* mono* \
msodbcsql* mssql-tools mysql* libmysqlclient* unixodbc-dev \
nginx \
nuget \
odbcinst* \
openjdk* \
packagekit* \
packages-microsoft-prod \
mono-* mono* libmono-* \
nuget packages-microsoft-prod snapd yarn \
php-* php5* php7* php8* snmp \
plymouth plymouth-theme-ubuntu-text \
podman podman-plugins \
poppler-data \
popularity-contest \
postgresql* libpq-dev \
printer-driver-* \
python2 python2-minimal \
rake r-base* r-cran-* r-recommended ruby* \
rhythmbox rhythmbox-plugin* \
sane-utils \
sbt \
session-manager-plugin \
shotwell* \
skopeo \
snapd \
sphinxsearch \
sound-theme-freedesktop \
subversion \
swig* \
telepathy-* \
totem* \
ubuntu-mono \
vim vim-* \
xvfb \
yarn \
zulu* &>/dev/null
sudo -E apt-get -qq -y autoremove &>/dev/null
&>/dev/null
sudo -EH apt-get -qq -y autoremove &>/dev/null
echo "::endgroup::"
echo "::group::Removing Homebrew Completely"
@ -130,16 +68,16 @@ echo "::endgroup::"
echo "::group::Removing NodeJS, NPM & NPX"
{
sudo npm list -g --depth=0. 2>/dev/null | awk -F ' ' '{print $2}' | awk -F '@[0-9]' '{print $1}' | sudo xargs npm remove -g
sudo npm list -g --depth=0. 2>/dev/null | awk -F ' ' '{print $2}' | awk -F '@[0-9]' '{print $1}' | grep -v "^n$" | sudo xargs npm remove -g
yes | sudo n uninstall
sudo rm -rf -- /usr/local/lib/node_modules /usr/local/n \
sudo rm -rf -- /usr/local/lib/node_modules /usr/local/n /usr/local/bin/n \
/usr/local/bin/vercel /usr/local/bin/now
} 2>/dev/null
echo "::endgroup::"
echo "::group::Purging PIPX & PIP packages"
{
pipx uninstall-all && sudo pip uninstall -q -y pipx
pipx uninstall-all && sudo pip3 uninstall -q -y pipx
find /usr/share /usr/lib ~/.local/lib -depth -type d -name __pycache__ \
-exec rm -rf '{}' + 2>/dev/null;
} 2>/dev/null
@ -148,33 +86,38 @@ echo "::endgroup::"
echo "::group::Removing Lots of Cached Programs & Unneeded Folders"
{
printf "Removing Runner Tool Cache...\n"
sudo rm -rf -- /opt/hostedtoolcache/*
sudo rm -rf -- /opt/hostedtoolcache
printf "Removing Android SDK, NDK, Platform Tools, Gradle, Maven...\n"
sudo rm -rf -- /usr/local/lib/android
sudo rm -rf -- /usr/share/gradle* /usr/bin/gradle /usr/share/apache-maven* /usr/bin/mvn
sudo rm -rf -- /usr/local/lib/android \
/usr/share/gradle* /usr/bin/gradle /usr/share/apache-maven* /usr/bin/mvn
printf "Removing Microsoft vcpkg, Miniconda, Leiningen, Pulumi...\n"
sudo rm -rf -- /usr/local/share/vcpkg /usr/local/bin/vcpkg
sudo rm -rf -- /usr/share/miniconda /usr/bin/conda
sudo rm -rf -- /usr/local/lib/lein /usr/local/bin/lein /usr/local/bin/pulumi*
sudo rm -rf -- /usr/local/share/vcpkg /usr/local/bin/vcpkg \
/usr/share/miniconda /usr/bin/conda \
/usr/local/lib/lein /usr/local/bin/lein /usr/local/bin/pulumi*
printf "Removing Browser-based Webdrivers...\n"
sudo rm -rf -- /usr/share/java/selenium-server-standalone.jar \
/usr/local/share/phantomjs* /usr/local/bin/phantomjs \
/usr/local/share/chrome_driver /usr/bin/chromedriver \
/usr/local/share/gecko_driver /usr/bin/geckodriver
printf "Removing PHP, Composer, Database Management Program Remains...\n"
sudo rm -rf -- /etc/php /usr/bin/composer /usr/local/bin/phpunit
sudo rm -rf -- /etc/mysql /usr/local/bin/sqlcmd /usr/local/bin/bcp
printf "Removing Julia, Rust, Cargo, Swift, Haskell, Erlang...\n"
sudo rm -rf -- /usr/local/julia* /usr/bin/julia
sudo rm -rf -- /usr/share/rust /home/runner/.cargo /home/runner/.rustup
sudo rm -rf -- /usr/share/swift /usr/local/bin/swift /usr/local/bin/swiftc
sudo rm -rf -- /usr/bin/ghc /usr/bin/cabal /usr/local/bin/stack
sudo rm -rf -- /usr/local/bin/rebar3
sudo rm -rf -- /etc/php /usr/bin/composer /usr/local/bin/phpunit \
/var/lib/mysql /etc/mysql /usr/local/bin/sqlcmd /usr/local/bin/bcp \
/usr/local/bin/session-manager-plugin
printf "Removing Julia, Rust, Cargo, Rubugems, Rake, Swift, Haskell, Erlang...\n"
sudo rm -rf -- /usr/local/julia* /usr/bin/julia \
/usr/share/rust /home/runner/.cargo /home/runner/.rustup \
/usr/local/bin/rake /usr/local/bin/rdoc /usr/local/bin/ri /usr/local/bin/racc /usr/local/bin/rougify \
/usr/local/bin/bundle /usr/local/bin/bundler /var/lib/gems \
/usr/share/swift /usr/local/bin/swift /usr/local/bin/swiftc \
/usr/bin/ghc /usr/local/.ghcup /usr/local/bin/stack \
/usr/local/bin/rebar3 \
/usr/bin/go /usr/bin/gofmt
printf "Removing Various Cloud CLI Tools...\n"
sudo rm -rf -- /usr/local/bin/aws /usr/local/bin/aws_completer /usr/local/aws-cli /usr/local/aws
sudo rm -rf -- /usr/local/bin/aliyun /usr/share/az_* /opt/az /usr/bin/az \
/usr/local/bin/azcopy10 /usr/bin/azcopy /usr/lib/azcopy
sudo rm -rf -- /usr/local/bin/oc /usr/local/bin/oras
sudo rm -rf -- /usr/local/bin/aws /usr/local/bin/aws_completer /usr/local/aws-cli /usr/local/aws \
/usr/local/bin/aliyun /usr/share/az_* /opt/az /usr/bin/az \
/usr/local/bin/azcopy10 /usr/bin/azcopy /usr/lib/azcopy \
/usr/local/bin/oc /usr/local/bin/oras \
/usr/local/bin/README.md
printf "Removing Different Kubernetes & Container Management Programs...\n"
sudo rm -rf -- /usr/local/bin/packer /usr/local/bin/terraform \
/usr/local/bin/helm /usr/local/bin/kubectl /usr/local/bin/kind \
@ -186,17 +129,17 @@ echo "::group::Removing Lots of Cached Programs & Unneeded Folders"
sudo rm -rf -- /usr/local/graalvm
printf "Removing Manpages...\n"
sudo rm -rf -- /usr/share/man
printf "Clearing Remains of Apt Packages...\n"
sudo rm -rf -- /var/lib/apt/lists/* /var/cache/apt/archives/* /etc/apt/sources.list.d/*
} 2>/dev/null
echo "::endgroup::"
echo "::group::Clearing Remains of Apt Packages"
echo "::group::Clearing Unwanted Environment Variables"
{
sudo -E apt-get -qq -y clean && sudo -E apt-get -qq -y autoremove
sudo rm -rf -- /var/lib/apt/lists/* /var/cache/apt/archives/* /etc/apt/sources.list.d/*
export PATH="/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
sed -i '/.dotnet/d' ~/.bashrc 2>/dev/null
sed -i '/.config\/composer/d' ~/.bashrc 2>/dev/null
. ~/.bashrc 2>/dev/null
sudo sed -i -e '/^PATH=/d;/hostedtoolcache/d;/^AZURE/d;/^SWIFT/d;/^DOTNET/d;/DRIVER/d;/^CHROME/d;/HASKELL/d;/^JAVA/d;/^SELENIUM/d;/^GRAALVM/d;/^ANT/d;/^GRADLE/d;/^LEIN/d;/^CONDA/d;/^VCPKG/d;/^ANDROID/d;/^PIPX/d;/^HOMEBREW/d;' /etc/environment
sudo sed -i '1i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' /etc/environment
sed -i '/HOME\/\.local\/bin/d' /home/runner/.bashrc
source /home/runner/.bashrc
} 2>/dev/null
echo "::endgroup::"