From a0ddc6ba0c6dd30beb758592ed4f7158624c4d34 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 2 Dec 2025 09:26:17 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F(CI)=20free=20up=20space?= =?UTF-8?q?=20in=20the=20GitHub=20Actions=20runners?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On the release pull request workflows, we sometimes face issues with disk space. We clean up some space before starting Docker services or after finishing to build images to avoid these issues. --- .github/actions/free-disk-space/action.yml | 24 ++++++++++++++++++++++ .github/workflows/docker-hub.yml | 18 ++++++++++++++++ .github/workflows/impress-frontend.yml | 6 ++++++ 3 files changed, 48 insertions(+) create mode 100644 .github/actions/free-disk-space/action.yml diff --git a/.github/actions/free-disk-space/action.yml b/.github/actions/free-disk-space/action.yml new file mode 100644 index 00000000..d47bbe72 --- /dev/null +++ b/.github/actions/free-disk-space/action.yml @@ -0,0 +1,24 @@ +name: 'Free Disk Space' +description: 'Free up disk space by removing large preinstalled items and cleaning up Docker' + +runs: + using: "composite" + steps: + - name: Free disk space (Linux only) + if: runner.os == 'Linux' + shell: bash + run: | + echo "Disk usage before cleanup:" + df -h + + # Remove large preinstalled items that are not used on GitHub-hosted runners + sudo rm -rf /usr/share/dotnet || true + sudo rm -rf /opt/ghc || true + sudo rm -rf /usr/local/lib/android || true + + # Clean up Docker + docker system prune -af || true + docker volume prune -f || true + + echo "Disk usage after cleanup:" + df -h \ No newline at end of file diff --git a/.github/workflows/docker-hub.yml b/.github/workflows/docker-hub.yml index d3cf2f22..fba15f6c 100644 --- a/.github/workflows/docker-hub.yml +++ b/.github/workflows/docker-hub.yml @@ -52,6 +52,12 @@ jobs: push: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'preview') }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - + name: Cleanup Docker after build + if: always() + run: | + docker system prune -af + docker volume prune -f build-and-push-frontend: runs-on: ubuntu-latest @@ -91,6 +97,12 @@ jobs: push: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'preview') }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - + name: Cleanup Docker after build + if: always() + run: | + docker system prune -af + docker volume prune -f build-and-push-y-provider: runs-on: ubuntu-latest @@ -125,6 +137,12 @@ jobs: push: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'preview') }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - + name: Cleanup Docker after build + if: always() + run: | + docker system prune -af + docker volume prune -f notify-argocd: needs: diff --git a/.github/workflows/impress-frontend.yml b/.github/workflows/impress-frontend.yml index 391a912d..2df8692e 100644 --- a/.github/workflows/impress-frontend.yml +++ b/.github/workflows/impress-frontend.yml @@ -85,6 +85,9 @@ jobs: - name: Install Playwright Browsers run: cd src/frontend/apps/e2e && yarn install --frozen-lockfile && yarn install-playwright chromium + - name: Free disk space before Docker + uses: ./.github/actions/free-disk-space + - name: Start Docker services run: make bootstrap-e2e FLUSH_ARGS='--no-input' @@ -124,6 +127,9 @@ jobs: - name: Install Playwright Browsers run: cd src/frontend/apps/e2e && yarn install --frozen-lockfile && yarn install-playwright firefox webkit chromium + - name: Free disk space before Docker + uses: ./.github/actions/free-disk-space + - name: Start Docker services run: make bootstrap-e2e FLUSH_ARGS='--no-input'