Skip to content

ci: increase Windows dev drive size from 12GB to 20GB#8779

Merged
IWANABETHATGUY merged 2 commits intomainfrom
copilot/fix-cargo-test-linker-errors
Mar 19, 2026
Merged

ci: increase Windows dev drive size from 12GB to 20GB#8779
IWANABETHATGUY merged 2 commits intomainfrom
copilot/fix-cargo-test-linker-errors

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 19, 2026

see https://github.com/rolldown/rolldown/actions/runs/23277544016/job/67683621586

The Windows cargo-test CI job is failing with linker errors (LNK1318, LNK1180) because the 12 GB dev drive fills up during the Rust debug build (test binaries, PDB files, .rlibs, Cargo registry cache).

Change

  • Bump drive-size from 12GB20GB in .github/workflows/reusable-cargo-test.yml
- uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
  if: runner.os == 'Windows'
  with:
    drive-size: 20GB  # was 12GB
Original prompt

Problem

The Windows cargo-test CI job is failing with linker errors caused by running out of disk space on the dev drive.

Failing job: https://github.com/rolldown/rolldown/actions/runs/23277056014/job/67682204464

Errors from the log:

error: linking with `link.exe` failed: exit code: 1140
  = note: LINK : fatal error LNK1318: Unexpected PDB error; LIMIT (12) 'E:\target\debug\deps\integration-ca7a8f5a011d2f91.pdb'

error: could not compile `rolldown` (test "integration") due to 1 previous error

error: linking with `link.exe` failed: exit code: 1180
  = note: E:\target\debug\examples\watch.exe : fatal error LNK1180: insufficient disk space to complete link

error: linking with `link.exe` failed: exit code: 1180
  = note: E:\target\debug\deps\rolldown-e3e41cd18eeec507.exe : fatal error LNK1180: insufficient disk space to complete link

error: Recipe `test-rust` failed on line 63 with exit code 1

Root Cause

The setup-dev-drive step in .github/workflows/reusable-cargo-test.yml is configured with drive-size: 12GB. The Rust build output — including debug artifacts, PDB files, test binaries, and the Cargo registry/cache — is filling up the 12 GB dev drive, causing:

  • LNK1318 (PDB error / LIMIT 12): the drive is at or near capacity when PDB files are being written
  • LNK1180: the drive has completely run out of space during linking

Fix

Increase the dev drive size in .github/workflows/reusable-cargo-test.yml from 12GB to a larger value (e.g. 16GB or 20GB) to give the Windows build enough room to compile and link the full Rust test suite.

File to change: .github/workflows/reusable-cargo-test.yml

Change:

      - uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
        if: runner.os == 'Windows'
        with:
          drive-size: 12GB

To:

      - uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
        if: runner.os == 'Windows'
        with:
          drive-size: 20GB

Please increase the drive-size from 12GB to 20GB (or whatever size is appropriate to give comfortable headroom above current usage).

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: Fix cargo test windows CI https://github.com/rolldown/rolldown/actions/runs/23277056014/job/67682204464

Assistant: Now I have a clear picture of the failure. Let me analyze the errors:

Root Cause: Insufficient disk space on the Windows runner's Dev Drive

The CI log shows two distinct linker errors on Windows:

  1. LNK1318: Unexpected PDB error; LIMIT (12) — the PDB file hit the 12-file limit (related to the Dev Drive being 12GB and running out)
  2. LNK1180: insufficient disk space to complete link — explicit disk exhaustion

The setup-dev-drive action currently allocates only 12GB for the drive. Given the size of the rolldown project (many crates being compiled in parallel to the target dir on that same Dev Drive), it's running out of space. The fix is to increase the dev drive size.

Let me also check if there are any other recent issues or PRs related to this:

Assistant: Now I have a clear picture of the issue. Let me create the PR to fix it.

Root Cause Analysis:

The Windows CI job is failing with two related linker errors:

  1. LNK1318: Unexpected PDB error; LIMIT (12) — the PDB file limit on the 12 GB dev drive was hit
  2. LNK1180: insufficient disk space to complete link — the dev drive ran out of disk space

The current configuration uses samypr100/setup-dev-drive with drive-size: 12GB. The build is running out of space (or hitting the PDB limit caused by the drive being too full) when trying to compile and link the full Rust test suite on Windows. The fix is to increase the dev drive size.

Assistant: We're waiting for your response to the tool call dialog to continue with creating the pull request.

In the meantime, here's a summary of the root cause and fix:


Root Cause: Windows Dev Drive Out of Disk Space

The CI job failed with two linker errors during the cargo test step:

  • LNK1318 (PDB LIMIT 12): The PDB file writer hit the 12 GB cap, indicating the dev drive was at capacity.
  • LNK1180 (insufficient disk space): The drive was completely full when linking the .exe binaries.

The build target directory (E:\target) lives on a virtual dev drive set up by samypr100/setup-dev-drive. The drive is currently configured to 12 GB in .github/workflows/reusable-cargo-test.yml:

      - uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
        if: runner.os == 'Windows'
        with:
          drive-size: 12GB
          drive-format: ReFS
          env-mapping: |
            ...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

*This pull request was created from Copilot chat.*
>

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. [Learn more about Advanced Security.](https://gh.io/cca-advanced-security)

@netlify
Copy link
Copy Markdown

netlify bot commented Mar 19, 2026

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 20a6779
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69bb664e52eaa20008ea1ee1

Co-authored-by: IWANABETHATGUY <17974631+IWANABETHATGUY@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix linker errors in Windows cargo-test CI job due to disk space ci: increase Windows dev drive size from 12GB to 20GB Mar 19, 2026
Copilot AI requested a review from IWANABETHATGUY March 19, 2026 02:59
@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review March 19, 2026 03:02
@IWANABETHATGUY IWANABETHATGUY enabled auto-merge (squash) March 19, 2026 03:03
@IWANABETHATGUY IWANABETHATGUY merged commit f0f8f0a into main Mar 19, 2026
35 checks passed
@IWANABETHATGUY IWANABETHATGUY deleted the copilot/fix-cargo-test-linker-errors branch March 19, 2026 03:06
@github-actions github-actions bot mentioned this pull request Mar 23, 2026
shulaoda added a commit that referenced this pull request Mar 23, 2026
## [1.0.0-rc.11] - 2026-03-23

### 🚀 Features

- magicString replace with regex (#8802) by @IWANABETHATGUY
- support `output.sourcemapExcludeSources` option (#8828) by @sapphi-red
- support `getIndentString` in MagicString (#8775) by @IWANABETHATGUY
- MagicString ignoreList support (#8773) by @IWANABETHATGUY

### 🐛 Bug Fixes

- types: remove `pluginName` from `MinimalPluginContext` (#8864) by @sapphi-red
- do not report eval?.() as direct eval (#8860) by @IWANABETHATGUY
- handle negative indices, overlapping ranges, and moved content in MagicString remove (#8829) by @IWANABETHATGUY
- enable arbitrary_precision for serde_json to fix JSON float parsing (#8848) by @elderapo
- resolve TypeScript lint errors (#8841) by @Boshen
- avoid panic on multi-byte UTF-8 chars in hash placeholder iterator (#8790) by @shulaoda
- ci: skip failing vite build watch raw query test (#8840) by @Boshen
- ci: use step-level env override to unset VITE_PLUS_CLI_BIN in vite tests (#8838) by @Boshen
- ci: move vite tests into CI workflow by @Boshen
- ci: unset all VITE_PLUS_* env vars in vite-tests workflow (#8837) by @Boshen
- test: skip watch CLI tests on Windows (#8830) by @Boshen
- ci: unset VITE_PLUS_CLI_BIN in vite-tests workflow (#8832) by @Boshen
- remove redundant bare side-effect imports in entry/facade chunks (#8804) by @h-a-n-a
- magicString prepend issues (#8797) by @IWANABETHATGUY
- ci: use `vpx` instead of `vp exec` for `pkg-pr-new` (#8827) by @Boshen
- set `order` for callable plugins (#8815) by @sapphi-red
- handle reversed slice ranges with moved content (#8750) by @IWANABETHATGUY
- update emnapi to latest to avoid version mismatch (#8781) by @sapphi-red
- external.md on Windows OS (#8780) by @bddjr
- align MagicString length/isEmpty with reference magic-string (#8776) by @IWANABETHATGUY

### 🚜 Refactor

- extract canonical_ref_resolving_namespace helper (#8836) by @Boshen

### 📚 Documentation

- improve external examples for cross-platform correctness (#8786) by @hyf0-agent
- update reference to transform function in plugin API documentation (#8778) by @zOadT

### ⚡ Performance

- reduce timing of `dervie_entries_aware_chunk_name` (#8847) by @AliceLanniste
- bench: remove redundant sourcemap benchmark cases (#8825) by @Boshen
- reduce intermediate allocations in `collapse_sourcemaps` (#8821) by @Boshen
- enable parallel AST cloning on macOS (#8814) by @Boshen

### 🧪 Testing

- watch: use polling watcher and retry for watch error test (#8772) by @sapphi-red

### ⚙️ Miscellaneous Tasks

- justfile: skip setup-vite-plus if vp is already installed (#8862) by @Boshen
- add expectWarning option to test config (#8861) by @IWANABETHATGUY
- justfile: support windows for `just setup` (#8846) by @AliceLanniste
- deps: update rust crates (#8852) by @renovate[bot]
- deps: update endbug/version-check action to v3 (#8855) by @renovate[bot]
- deps: update github-actions (#8853) by @renovate[bot]
- deps: update dependency vitepress to v2.0.0-alpha.17 (#8854) by @renovate[bot]
- deps: update npm packages (#8851) by @renovate[bot]
- bench: use mimalloc as global allocator in bench crate (#8844) by @IWANABETHATGUY
- reuse native build artifact in node-validation job (#8826) by @Boshen
- speed up CodSpeed benchmark build by disabling LTO (#8824) by @Boshen
- remove redundant critcmp benchmark job (#8823) by @Boshen
- deps: update rust crate oxc_sourcemap to v6.1.0 (#8785) by @renovate[bot]
- node: migrate oxlint and oxfmt to Vite+ (#8813) by @Boshen
- revert namespace runners for release build jobs (#8820) by @Boshen
- migrate runners to namespace (#8819) by @Boshen
- test: relax test utils path assertion to support git worktrees (#8816) by @younggglcy
- rename `examples/lazy` to `examples/lazy-compilation` (#8789) by @shulaoda
- improve "needs reproduction" wording by @Boshen
- deps: update dependency oxlint-tsgolint to v0.17.1 (#8807) by @renovate[bot]
- enable 7 previously-skipped MagicString tests (#8771) by @IWANABETHATGUY
- upgrade oxc to 0.121.0 (#8784) by @shulaoda
- increase Windows dev drive size from 12GB to 20GB (#8779) by @Copilot

### ❤️ New Contributors

* @elderapo made their first contribution in [#8848](#8848)
* @younggglcy made their first contribution in [#8816](#8816)
* @bddjr made their first contribution in [#8780](#8780)
* @zOadT made their first contribution in [#8778](#8778)

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
This was referenced Mar 23, 2026
shulaoda added a commit that referenced this pull request Mar 23, 2026
## [1.0.0-rc.11] - 2026-03-23

### 🚀 Features

- magicString replace with regex (#8802) by @IWANABETHATGUY
- support `output.sourcemapExcludeSources` option (#8828) by @sapphi-red
- support `getIndentString` in MagicString (#8775) by @IWANABETHATGUY
- MagicString ignoreList support (#8773) by @IWANABETHATGUY

### 🐛 Bug Fixes

- forward test filters through vp run (#8870) by @younggglcy
- types: remove `pluginName` from `MinimalPluginContext` (#8864) by @sapphi-red
- do not report eval?.() as direct eval (#8860) by @IWANABETHATGUY
- handle negative indices, overlapping ranges, and moved content in MagicString remove (#8829) by @IWANABETHATGUY
- enable arbitrary_precision for serde_json to fix JSON float parsing (#8848) by @elderapo
- resolve TypeScript lint errors (#8841) by @Boshen
- avoid panic on multi-byte UTF-8 chars in hash placeholder iterator (#8790) by @shulaoda
- ci: skip failing vite build watch raw query test (#8840) by @Boshen
- ci: use step-level env override to unset VITE_PLUS_CLI_BIN in vite tests (#8838) by @Boshen
- ci: move vite tests into CI workflow by @Boshen
- ci: unset all VITE_PLUS_* env vars in vite-tests workflow (#8837) by @Boshen
- test: skip watch CLI tests on Windows (#8830) by @Boshen
- ci: unset VITE_PLUS_CLI_BIN in vite-tests workflow (#8832) by @Boshen
- remove redundant bare side-effect imports in entry/facade chunks (#8804) by @h-a-n-a
- magicString prepend issues (#8797) by @IWANABETHATGUY
- ci: use `vpx` instead of `vp exec` for `pkg-pr-new` (#8827) by @Boshen
- set `order` for callable plugins (#8815) by @sapphi-red
- handle reversed slice ranges with moved content (#8750) by @IWANABETHATGUY
- update emnapi to latest to avoid version mismatch (#8781) by @sapphi-red
- external.md on Windows OS (#8780) by @bddjr
- align MagicString length/isEmpty with reference magic-string (#8776) by @IWANABETHATGUY

### 🚜 Refactor

- extract canonical_ref_resolving_namespace helper (#8836) by @Boshen

### 📚 Documentation

- improve external examples for cross-platform correctness (#8786) by @hyf0-agent
- update reference to transform function in plugin API documentation (#8778) by @zOadT

### ⚡ Performance

- reduce timing of `dervie_entries_aware_chunk_name` (#8847) by @AliceLanniste
- bench: remove redundant sourcemap benchmark cases (#8825) by @Boshen
- reduce intermediate allocations in `collapse_sourcemaps` (#8821) by @Boshen
- enable parallel AST cloning on macOS (#8814) by @Boshen

### 🧪 Testing

- watch: use polling watcher and retry for watch error test (#8772) by @sapphi-red

### ⚙️ Miscellaneous Tasks

- deps: update dependency @oxc-project/types to v0.122.0 (#8873) by @renovate[bot]
- publish-to-npm: use correct vp pm publish (#8871) by @shulaoda
- justfile: skip setup-vite-plus if vp is already installed (#8862) by @Boshen
- add expectWarning option to test config (#8861) by @IWANABETHATGUY
- justfile: support windows for `just setup` (#8846) by @AliceLanniste
- deps: update rust crates (#8852) by @renovate[bot]
- deps: update endbug/version-check action to v3 (#8855) by @renovate[bot]
- deps: update github-actions (#8853) by @renovate[bot]
- deps: update dependency vitepress to v2.0.0-alpha.17 (#8854) by @renovate[bot]
- deps: update npm packages (#8851) by @renovate[bot]
- bench: use mimalloc as global allocator in bench crate (#8844) by @IWANABETHATGUY
- reuse native build artifact in node-validation job (#8826) by @Boshen
- speed up CodSpeed benchmark build by disabling LTO (#8824) by @Boshen
- remove redundant critcmp benchmark job (#8823) by @Boshen
- deps: update rust crate oxc_sourcemap to v6.1.0 (#8785) by @renovate[bot]
- node: migrate oxlint and oxfmt to Vite+ (#8813) by @Boshen
- revert namespace runners for release build jobs (#8820) by @Boshen
- migrate runners to namespace (#8819) by @Boshen
- test: relax test utils path assertion to support git worktrees (#8816) by @younggglcy
- rename `examples/lazy` to `examples/lazy-compilation` (#8789) by @shulaoda
- improve "needs reproduction" wording by @Boshen
- deps: update dependency oxlint-tsgolint to v0.17.1 (#8807) by @renovate[bot]
- enable 7 previously-skipped MagicString tests (#8771) by @IWANABETHATGUY
- upgrade oxc to 0.121.0 (#8784) by @shulaoda
- increase Windows dev drive size from 12GB to 20GB (#8779) by @Copilot

### ❤️ New Contributors

* @younggglcy made their first contribution in [#8870](#8870)
* @elderapo made their first contribution in [#8848](#8848)
* @bddjr made their first contribution in [#8780](#8780)
* @zOadT made their first contribution in [#8778](#8778)

---------

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants