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'