Skip to content

feat(server): clone Linux worktrees with filesystem reflinks #25

feat(server): clone Linux worktrees with filesystem reflinks

feat(server): clone Linux worktrees with filesystem reflinks #25

name: macOS Worktree Cloning
on:
pull_request:
paths:
- "apps/server/src/vcs/FileClone*.ts"
- "apps/server/src/vcs/WorktreeClone*.ts"
- "apps/server/src/vcs/WorktreeDependencies*.ts"
- "apps/server/src/project/ProjectSetupScriptRunner*.ts"
- "apps/server/src/vcs/GitVcsDriverCore*.ts"
- "packages/contracts/src/t3ProjectFile*.ts"
- ".github/workflows/macos-worktree-clone.yml"
permissions:
contents: read
concurrency:
group: macos-worktree-clone-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
test:
name: APFS worktree copies
runs-on: macos-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
sparse-checkout: |
/*
!/.repos/
sparse-checkout-cone-mode: false
- uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
- name: Verify native copies and Git fallback
# Runner images configure Git LFS filters globally; fixtures must opt in
# to filters themselves when testing the normal-checkout fallback.
env:
GIT_CONFIG_GLOBAL: /dev/null
GIT_CONFIG_NOSYSTEM: "1"
run: vp test run apps/server/src/vcs/WorktreeClone.test.ts apps/server/src/vcs/GitVcsDriverCore.test.ts packages/contracts/src/t3ProjectFile.test.ts apps/server/src/project/ProjectSetupScriptRunner.test.ts
- name: Typecheck server
run: vp run --filter t3 typecheck