diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b3fc5b2a93..a9a641b0a3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -194,7 +194,8 @@ jobs: needs: detect # apps/desktop/e2e/update: a real install.sh install + packaged Desktop, # first run, "Update now" hand-off/relaunch, concurrent-update refusal. - # Not in all-checks-pass yet: it joins the required set once it has proven stable on CI. + # Advisory until it has proven stable on CI: its shards run with continue-on-error, so a + # red shard shows on the PR but does not fail all-checks-pass. if: ${{ needs.detect.outputs.python_prod == 'true' || needs.detect.outputs.frontend == 'true' }} uses: ./.github/workflows/e2e-desktop-update.yml @@ -313,6 +314,7 @@ jobs: - bootstrap-installer - e2e-desktop - e2e-desktop-core + - e2e-desktop-update - docs-site - history-check - contributor-check diff --git a/.github/workflows/e2e-desktop-update.yml b/.github/workflows/e2e-desktop-update.yml index 688e356aee..bad9b2230c 100644 --- a/.github/workflows/e2e-desktop-update.yml +++ b/.github/workflows/e2e-desktop-update.yml @@ -28,6 +28,8 @@ jobs: name: Desktop install/update E2E (Linux, ${{ matrix.cell }}) runs-on: ubuntu-latest-32-core timeout-minutes: 30 + # Advisory until stable on CI (see ci.yaml): a red shard does not fail the caller. + continue-on-error: true strategy: fail-fast: false # One install per shard (every spec restores it; paths are baked in, so @@ -75,6 +77,13 @@ jobs: - name: Run the update suite under xvfb working-directory: apps/desktop run: | + # Resource trail in the log, so a runner that dies mid-run leaves its last state behind. + ( while sleep 20; do + echo "::group::resources $(date -u +%T)" + df -h / "$RUNNER_TEMP" | tail -n +2; free -g | head -2 + ps -eo pid,ppid,etimes,rss,args --sort=-rss | head -8 | cut -c1-200 + echo "::endgroup::" + done ) & xvfb-run -a --server-args="-screen 0 1280x1024x24" \ npx playwright test -c e2e/update/playwright.config.ts ${{ matrix.specs }} env: