• Will Chen's avatar
    Add CI cleanup script for self-hosted macOS runners (#2617) · c971fe82
    Will Chen 提交于
    ## Summary
    - Adds `scripts/ci-cleanup-macos.sh` that cleans up build outputs, test
    artifacts, old Playwright browsers, npm cache, and stale runner
    diagnostic logs after each CI job
    - Integrates the cleanup as an `if: always()` post-job step in `ci.yml`
    (build + e2e-tests jobs) and `claude-deflake-e2e.yml`
    - Prevents disk space exhaustion on Mac Mini self-hosted runners (see
    [failed
    job](https://github.com/dyad-sh/dyad/actions/runs/21882508263/job/63168659300))
    
    ## Test plan
    - [ ] Verify cleanup step runs on self-hosted macOS runners after build
    job
    - [ ] Verify cleanup step runs on self-hosted macOS runners after
    e2e-tests job
    - [ ] Verify cleanup step runs after deflake workflow
    - [ ] Verify cleanup is skipped on GitHub-hosted runners (guarded by
    `contains(matrix.os.image, 'self-hosted')`)
    - [ ] Verify the script is idempotent (safe to run when artifacts don't
    exist)
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2617"
    target="_blank">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Adds a macOS CI cleanup script that runs after each job on self-hosted
    Mac Minis to free disk space and prevent failures from exhaustion.
    
    - **New Features**
    - Added scripts/ci-cleanup-macos.sh to remove build outputs, test
    artifacts, old Playwright browsers (keeps current via chromium revision
    from browsers.json), npm cache/logs (rm -rf _cacache), and runner
    diagnostics older than 7 days; safe to run multiple times with a
    corrected Node check.
    - Integrated as an if: always() post-job step in ci.yml (build and
    e2e-tests, guarded to self-hosted) and claude-deflake-e2e.yml.
    
    <sup>Written for commit 756485ea0c30b9ba26800c168f182b3688bef6cc.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > Low risk CI-only change; main risk is over-aggressive cleanup
    (caches/artifacts) causing longer reruns or unexpected deletions on
    self-hosted runners.
    > 
    > **Overview**
    > Adds a new `scripts/ci-cleanup-macos.sh` post-job script to reclaim
    disk space on self-hosted macOS runners by deleting workspace build/test
    artifacts, pruning old Playwright browser installs, clearing npm
    cache/logs, and removing stale runner diagnostic logs.
    > 
    > Integrates the cleanup as an `if: always()` step after `build` and
    `e2e-tests` in `ci.yml` (guarded to self-hosted macOS) and after the
    deflake job in `claude-deflake-e2e.yml`.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    756485ea0c30b9ba26800c168f182b3688bef6cc. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    c971fe82
ci-cleanup-macos.sh 5.1 KB