Change summary
.github/workflows/ci.yml | 29 ++++++++++++++++++++++++++---
to_remove.file | 0
2 files changed, 26 insertions(+), 3 deletions(-)
Detailed changes
@@ -234,35 +234,58 @@ jobs:
runs-on: hosted-windows-1
steps:
# more info here:- https://github.com/rust-lang/cargo/issues/13020
+ - name: Create Dev Drive using ReFS
+ run: |
+ $Volume = New-VHD -Path C:/zed_dev_drive.vhdx -SizeBytes 30GB |
+ Mount-VHD -Passthru |
+ Initialize-Disk -Passthru |
+ New-Partition -AssignDriveLetter -UseMaximumSize |
+ Format-Volume -FileSystem ReFS -Confirm:$false -Force
+ Write-Output $Volume
+ Write-Output "DEV_DRIVE=$($Volume.DriveLetter):" >> $env:GITHUB_ENV
- name: Enable longer pathnames for git
run: git config --system core.longpaths true
- name: Checkout repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
clean: false
+ # actions/checkout does not let us clone into anywhere outside ${{ github.workspace }}, so we have to copy the clone...
+ - name: Copy Git Repo to Dev Drive
+ run: |
+ Copy-Item -Path "${{ github.workspace }}" -Destination "${{ env.DEV_DRIVE }}/zed" -Recurse
- name: Cache dependencies
uses: swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
+ workspaces: ${{ env.DEV_DRIVE }}/zed
cache-provider: "github"
+ env:
+ CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
+ RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup
- name: Configure CI
run: |
- mkdir -p ./../.cargo
- cp ./.cargo/ci-config.toml ./../.cargo/config.toml
+ mkdir -p ${{ env.DEV_DRIVE }}/.cargo -ErrorAction Ignore
+ cp ./.cargo/ci-config.toml ${{ env.DEV_DRIVE }}/.cargo/config.toml
- name: cargo clippy
# Windows can't run shell scripts, so we need to use `cargo xtask`.
run: cargo xtask clippy
+ env:
+ CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
+ RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup
- name: Build Zed
run: cargo build
+ env:
+ CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
+ RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup
# Since the Windows runners are stateful, so we need to remove the config file to prevent potential bug.
- name: Clean CI config file
if: always()
- run: Remove-Item -Path "./../.cargo" -Recurse -Force
+ run: Remove-Item -Path "${{ env.DEV_DRIVE }}/.cargo/config.toml" -Force
bundle-mac:
timeout-minutes: 120