Files
fluxscape/scripts/build-editor.ts
2024-03-26 22:32:04 +01:00

95 lines
2.4 KiB
TypeScript

/// ---------------------------------------------------------------------------
/// This file is designed to be small, and reflect how GitHub Actions is setup.
/// ---------------------------------------------------------------------------
import { execSync } from 'child_process';
import { argv } from 'node:process';
import path from 'path';
import rimraf from 'rimraf';
import { getCurrentPlatform } from './helper';
// Inputs
const [_nodeExecPath, _executedFilePath, ...args] = argv;
const SKIP_GIT_CHECK = args.includes('--skip-git');
const WORKSPACE_PATH = path.resolve(__dirname, '..');
const TARGET_PLATFORM = process.env.TARGET_PLATFORM || getCurrentPlatform();
const DISABLE_SIGNING = process.env.DISABLE_SIGNING;
const CSC_NAME = process.env.CSC_NAME;
// Debug Configuration
console.log('--- Configuration');
console.log('> WORKSPACE_PATH: ', WORKSPACE_PATH);
console.log('> TARGET_PLATFORM: ', TARGET_PLATFORM);
console.log('---');
console.log('--- Verify git status');
if (SKIP_GIT_CHECK) {
console.log('* --- SKIP GIT CHECK (--skip-git)');
} else {
try {
const gitDiff = execSync('git diff --numstat', {
env: process.env
}).toString();
if (gitDiff !== '') {
console.log();
console.log('--- You have local git changes, please commit them before building.');
console.log();
throw new Error();
}
} catch (error) {
console.error('git diff failed.');
throw error;
}
}
// Start clean!
console.log('---> clean');
execSync('npx lerna clean --yes', {
stdio: 'inherit',
env: process.env
});
// Delete dist folders
console.log("--- delete 'dist' folders");
rimraf.sync('./dist');
rimraf.sync('./packages/noodl-editor/dist');
// Build Viewer
console.log('---> build viewer');
execSync('npm run build:editor:_viewer', {
stdio: 'inherit',
env: {
...process.env,
WORKSPACE_PATH
}
});
try {
// Build Editor
console.log('---> build editor');
execSync('npm run build:editor:_editor', {
stdio: 'inherit',
env: {
...process.env,
WORKSPACE_PATH,
DISABLE_SIGNING,
CSC_NAME,
}
});
} catch (error) {
console.error(error);
// I would like it to continue and collect the other information,
// it could be useful for debugging.
if (process.platform === 'darwin') {
// NOTE: /node_modules/app-builder-lib/templates/entitlements.mac.plist is missing
execSync(`ls ./node_modules/app-builder-lib/templates`, {
stdio: 'inherit',
env: process.env
});
}
}