From 388be1fa1ddbef0e418ee89119245e6036b6f287 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Wed, 4 Nov 2026 10:17:55 +0000 Subject: [PATCH] ci: free runner disk for add-on jobs and fix the Memory delete spec The add-on jobs stop in prepare.sh when less than 20 GiB is free, and the hosted runner image no longer leaves that much. Add a small script that removes the unused preinstalled toolchains in parallel and prints df before and after, and run it first in both jobs. The Memory delete spec expected one status element. The page live region and the toast container both carry role=status, so two match. Check the page live region on its own and the toast as the second. Assisted-by: Claude:claude-sonnet-5-5 --- .github/workflows/addons-tests.yml | 8 ++++ .../http/react-ui/e2e/settings-memory.spec.js | 4 +- scripts/ci/free-runner-disk.sh | 37 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100755 scripts/ci/free-runner-disk.sh diff --git a/.github/workflows/addons-tests.yml b/.github/workflows/addons-tests.yml index 92f917dc87..0a691cb50e 100644 --- a/.github/workflows/addons-tests.yml +++ b/.github/workflows/addons-tests.yml @@ -83,6 +83,10 @@ jobs: uses: actions/checkout@v7 with: persist-credentials: false + - name: Free disk space + # prepare.sh stops below 20 GiB free. The hosted runner image ships + # toolchains this job never uses; remove them before anything installs. + run: sh scripts/ci/free-runner-disk.sh - name: Setup Go uses: actions/setup-go@v6 with: @@ -149,6 +153,10 @@ jobs: uses: actions/checkout@v7 with: persist-credentials: false + - name: Free disk space + # prepare.sh stops below 20 GiB free. The hosted runner image ships + # toolchains this job never uses; remove them before anything installs. + run: sh scripts/ci/free-runner-disk.sh - name: Setup Go uses: actions/setup-go@v6 with: diff --git a/core/http/react-ui/e2e/settings-memory.spec.js b/core/http/react-ui/e2e/settings-memory.spec.js index 02afbad5e0..3d55227a45 100644 --- a/core/http/react-ui/e2e/settings-memory.spec.js +++ b/core/http/react-ui/e2e/settings-memory.spec.js @@ -144,7 +144,9 @@ test('Delete asks first, then moves the file to the Trash', async ({ page }) => await f.getByTestId('memory-delete-yes').click() await expect(group(page, 'notes-user:').getByTestId('memory-file')).toHaveCount(2) expect(s.removed).toEqual(['Memory/job.md']) - await expect(page.getByRole('status').filter({ hasText: 'Moved job.md to the Trash.' })).toHaveCount(1) + // The page's own live region and the toast both announce the move. + await expect(page.locator('.sr-only[role="status"]').filter({ hasText: 'Moved job.md to the Trash.' })).toHaveCount(1) + await expect(page.getByRole('status').filter({ hasText: 'Moved job.md to the Trash.' })).toHaveCount(2) }) test('Clear all asks to confirm, then removes every file', async ({ page }) => { diff --git a/scripts/ci/free-runner-disk.sh b/scripts/ci/free-runner-disk.sh new file mode 100755 index 0000000000..76d4ea8cd9 --- /dev/null +++ b/scripts/ci/free-runner-disk.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Frees disk space on a GitHub-hosted ubuntu runner before a job installs its +# own toolchain. It removes preinstalled toolchains that the add-on jobs never +# use. It keeps Go, Node.js, Python 3 from the OS and everything under +# /usr/local/bin, because setup steps and the job rely on them. The deletes run +# in parallel; the script prints df before and after. +set -u +echo "== disk before" +df -h / /mnt 2>/dev/null || df -h / +paths=" +/usr/share/dotnet +/usr/local/lib/android +/opt/ghc +/usr/local/.ghcup +/usr/local/share/powershell +/usr/local/share/chromium +/opt/microsoft +/opt/az +/usr/share/swift +/usr/local/julia* +/opt/hostedtoolcache/CodeQL +/opt/hostedtoolcache/Python +/opt/hostedtoolcache/PyPy +/opt/hostedtoolcache/Ruby +/opt/hostedtoolcache/Java_* +" +for p in $paths; do + # Unquoted on purpose: some entries are globs. + for match in $p; do + [ -e "$match" ] || continue + sudo rm -rf "$match" & + done +done +sudo docker image prune --all --force >/dev/null 2>&1 & +wait +echo "== disk after" +df -h / /mnt 2>/dev/null || df -h /