mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-15 12:53:31 +08:00
Windows GitHub runners keep the checkout and Bun install cache on different drives, which can trip Bun's baseline compile-target extraction before Tauri packaging starts. Point desktop sidecar builds at the runner temp cache so dev and release workflows can still use the Windows x64 baseline runtime needed for older CPUs. Constraint: Bun upstream still has an open Windows cross-drive extraction issue for compile target downloads. Rejected: Revert to bun-windows-x64 | would reintroduce the older-CPU Illegal Instruction failure class. Confidence: high Scope-risk: narrow Directive: Keep desktop dev and release sidecar build cache handling aligned until Bun's Windows extraction fix is released and verified in Actions. Tested: bun test scripts/pr/release-workflow.test.ts; cd desktop && bun run test -- --run scripts/build-sidecars.test.ts; bun run check:policy; cd desktop && BUN_INSTALL_CACHE_DIR=/tmp/cc-haha-bun-install-cache TAURI_ENV_TARGET_TRIPLE=x86_64-pc-windows-msvc bun run build:sidecars Not-tested: GitHub Actions Windows runner rerun after push.
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { describe, expect, test } from 'bun:test'
|
|
import { readFileSync } from 'node:fs'
|
|
|
|
describe('release desktop workflow', () => {
|
|
test('build job runs directly without quality preflight dependency', () => {
|
|
const workflow = readFileSync('.github/workflows/release-desktop.yml', 'utf8')
|
|
|
|
expect(workflow).not.toContain('quality-preflight:')
|
|
expect(workflow).not.toContain('run: bun run quality:gate --mode pr')
|
|
expect(workflow).not.toContain('needs: quality-preflight')
|
|
expect(workflow).toContain('name: Build (${{ matrix.label }})')
|
|
})
|
|
|
|
test('desktop build workflows keep Bun compile cache on the runner work drive', () => {
|
|
for (const workflowPath of [
|
|
'.github/workflows/build-desktop-dev.yml',
|
|
'.github/workflows/release-desktop.yml',
|
|
]) {
|
|
const workflow = readFileSync(workflowPath, 'utf8')
|
|
const buildSidecarsStep = workflow.match(
|
|
/- name: Build sidecars[\s\S]*?run: bun run build:sidecars/,
|
|
)?.[0]
|
|
|
|
expect(buildSidecarsStep, workflowPath).toContain(
|
|
'BUN_INSTALL_CACHE_DIR: ${{ runner.temp }}/bun-install-cache',
|
|
)
|
|
expect(buildSidecarsStep, workflowPath).toContain(
|
|
'TAURI_ENV_TARGET_TRIPLE: ${{ matrix.rust_target }}',
|
|
)
|
|
}
|
|
})
|
|
})
|