mirror of
https://github.com/Fission-AI/OpenSpec.git
synced 2026-09-14 20:16:53 +08:00
4867bfade5
* feat: implement Phase 1 E2E testing with cross-platform CI matrix - Add shared runCLI helper in test/helpers/run-cli.ts for spawn testing - Create test/cli-e2e/basic.test.ts covering help, version, validate flows - Migrate existing CLI exec tests to use runCLI helper - Extend CI matrix to bash (Linux/macOS) and pwsh (Windows) - Update Phase 1 tasks and proposal with implementation status * fix: correct YAML syntax in CI workflow diagnostics command * fix: use multiline YAML for diagnostics command * fix ci * fix: ci * fix: update core validation and json converter * chore(ci): split pr and main workflows * refactor: simplify CI workflow with unified matrix strategy - Consolidate test_pr and test_matrix into single test job - Add proper shell configuration with defaults - Add timeout protection (15 minutes) - Simplify required-checks to single job - Maintain cross-platform testing (bash on Linux/macOS, pwsh on Windows) * fix: restore lean PR workflow with async main branch matrix - PRs run only essential tests on ubuntu-latest (fast feedback) - Main branch runs full cross-platform matrix asynchronously - Separate required-checks for each workflow type - Different timeouts: 10min for PR, 15min for matrix
32 lines
836 B
JavaScript
32 lines
836 B
JavaScript
#!/usr/bin/env node
|
|
|
|
import { execFileSync } from 'child_process';
|
|
import { existsSync, rmSync } from 'fs';
|
|
import { createRequire } from 'module';
|
|
|
|
const require = createRequire(import.meta.url);
|
|
|
|
const runTsc = (args = []) => {
|
|
const tscPath = require.resolve('typescript/bin/tsc');
|
|
execFileSync(process.execPath, [tscPath, ...args], { stdio: 'inherit' });
|
|
};
|
|
|
|
console.log('🔨 Building OpenSpec...\n');
|
|
|
|
// Clean dist directory
|
|
if (existsSync('dist')) {
|
|
console.log('Cleaning dist directory...');
|
|
rmSync('dist', { recursive: true, force: true });
|
|
}
|
|
|
|
// Run TypeScript compiler (use local version explicitly)
|
|
console.log('Compiling TypeScript...');
|
|
try {
|
|
runTsc(['--version']);
|
|
runTsc();
|
|
console.log('\n✅ Build completed successfully!');
|
|
} catch (error) {
|
|
console.error('\n❌ Build failed!');
|
|
process.exit(1);
|
|
}
|