Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/docker-build-and-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ on:
required: false
type: boolean
default: false
debloat:
description: "Whether the debload action should be run before building the image"
required: false
type: boolean
default: false

secrets:
docker-user:
Expand All @@ -78,7 +83,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: bakdata/ci-templates/actions/checkout@1.49.0
uses: bakdata/ci-templates/actions/checkout@1.70.0
with:
ref: ${{ inputs.ref }}
lfs: ${{ inputs.checkout-lfs-files }}
Expand All @@ -91,6 +96,10 @@ jobs:
username: "${{ secrets.docker-user }}"
password: "${{ secrets.docker-password }}"

- name: "Debloat runner"
uses: jlumbroso/free-disk-space@v1.3.1
if: inputs.debloat

- uses: ./.github/actions/extra-step/docker-build-and-publish
# Add your extra step in your repo under .github/actions/extra-step/docker-build-and-publish/action.yaml ,
# e.g. to free up runner disk space or to install system packages
Expand Down
4 changes: 4 additions & 0 deletions actions/debloat-runner/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# debloat-runner

- [Description](https://github.com/bakdata/ci-templates/tree/main/docs/actions/debloat-runner)
- [References](https://github.com/bakdata/ci-templates/tree/main/docs/actions/debloat-runner)
11 changes: 11 additions & 0 deletions actions/debloat-runner/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: "Debloat runner"
description: "Remove unnessecary libraries & binaries for more leeway on space intensive builds"

runs:
using: "composite"
steps:
- name: Cleaning script
shell: bash
# might be nessecary
# chmod +x $GITHUB_ACTION_PATH//util_free_space.sh
run: bash $GITHUB_ACTION_PATH/util_free_space.sh
96 changes: 96 additions & 0 deletions actions/debloat-runner/util_free_space.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/usr/bin/env bash

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

# taken form here: https://raw.githubusercontent.com/kou/arrow/e49d8ae15583ceff03237571569099a6ad62be32/ci/scripts/util_free_space.sh

set -eux

df -h
echo "::group::/usr/local/*"
du -hsc /usr/local/*
echo "::endgroup::"
# ~1GB
sudo rm -rf \
/usr/local/aws-sam-cil \
/usr/local/julia* || :
echo "::group::/usr/local/bin/*"
du -hsc /usr/local/bin/*
echo "::endgroup::"
# ~1GB (From 1.2GB to 214MB)
sudo rm -rf \
/usr/local/bin/aliyun \
/usr/local/bin/azcopy \
/usr/local/bin/bicep \
/usr/local/bin/cmake-gui \
/usr/local/bin/cpack \
/usr/local/bin/helm \
/usr/local/bin/hub \
/usr/local/bin/kubectl \
/usr/local/bin/minikube \
/usr/local/bin/node \
/usr/local/bin/packer \
/usr/local/bin/pulumi* \
/usr/local/bin/sam \
/usr/local/bin/stack \
/usr/local/bin/terraform || :
# 142M
sudo rm -rf /usr/local/bin/oc || : \
echo "::group::/usr/local/share/*"
du -hsc /usr/local/share/*
echo "::endgroup::"
# 506MB
sudo rm -rf /usr/local/share/chromium || :
# 1.3GB
sudo rm -rf /usr/local/share/powershell || :
echo "::group::/usr/local/lib/*"
du -hsc /usr/local/lib/*
echo "::endgroup::"
# 15GB
sudo rm -rf /usr/local/lib/android || :
# 341MB
sudo rm -rf /usr/local/lib/heroku || :
# 1.2GB
sudo rm -rf /usr/local/lib/node_modules || :
echo "::group::/opt/*"
du -hsc /opt/*
echo "::endgroup::"
# 679MB
sudo rm -rf /opt/az || :
echo "::group::/opt/microsoft/*"
du -hsc /opt/microsoft/*
echo "::endgroup::"
# 197MB
sudo rm -rf /opt/microsoft/powershell || :
echo "::group::/opt/hostedtoolcache/*"
du -hsc /opt/hostedtoolcache/*
echo "::endgroup::"
# 5.3GB
sudo rm -rf /opt/hostedtoolcache/CodeQL || :
# 1.4GB
sudo rm -rf /opt/hostedtoolcache/go || :
# 489MB
sudo rm -rf /opt/hostedtoolcache/PyPy || :
# 376MB
sudo rm -rf /opt/hostedtoolcache/node || :
# Remove Web browser packages
sudo apt purge -y \
firefox \
google-chrome-stable \
microsoft-edge-stable
df -h
Loading