Refactor build configs and improve CI/CD checks
This commit makes the build process more robust, simplifies configurations and reduce the risk of incomplete or erroneous deployments. - Centralize output directory definitions by introducing `dist-dirs.json`. - Add `verify-build-artifacts` utility to ensure correct build outputs and `print-dist-dir` to determine distribution directory. - Add steps in CI/CD pipeline to verify build artifacts. - Migrate Electron Builder config from YAML to CJS for capability to read JSON. - Fix `release-site.yaml` failing due to pointing to wrong distribution directory, change it to use `print-dist-dir`. - Improve `check-desktop-runtime-errors` to verify build artifacts for more reliable builds. Ensure tests fail and succeed reliably. - Update `.gitignore` and configure ESLint to use it to define and ignore build artifact directories from one place, remove `.eslintignore` that does not add anything after this change. - Keep `"main"` field in `package.json` as `electron-vite` depends on it (alex8088/electron-vite#270). - Improve documentation
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import { join } from 'path';
|
||||
import distDirs from '@/../dist-dirs.json' assert { type: 'json' };
|
||||
|
||||
export const DESKTOP_BUILD_COMMAND = 'npm run electron:prebuild && npm run electron:build -- --publish never';
|
||||
export const DESKTOP_BUILD_COMMAND = [
|
||||
'npm run electron:prebuild',
|
||||
'npm run check:verify-build-artifacts -- --electron-unbundled',
|
||||
'npm run electron:build -- --publish never',
|
||||
'npm run check:verify-build-artifacts -- --electron-bundled',
|
||||
].join(' && ');
|
||||
export const PROJECT_DIR = process.cwd();
|
||||
export const DESKTOP_DIST_PATH = join(PROJECT_DIR, 'dist');
|
||||
export const DESKTOP_DIST_PATH = join(PROJECT_DIR, distDirs.electronBundled);
|
||||
export const APP_EXECUTION_DURATION_IN_SECONDS = 60; // Long enough for CI runners
|
||||
export const SCREENSHOT_PATH = join(PROJECT_DIR, 'screenshot.png');
|
||||
|
||||
@@ -60,7 +60,11 @@ export async function npmBuild(
|
||||
cwd: projectDir,
|
||||
});
|
||||
if (error) {
|
||||
log(error, LogLevel.Warn); // Cannot disable Vue CLI errors, stderr contains false-positives.
|
||||
die(error);
|
||||
}
|
||||
|
||||
if (await isDirMissingOrEmpty(distDir)) {
|
||||
die(`The desktop application build process did not produce the expected artifacts. The output directory "${distDir}" is empty or missing.`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user