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 /