build(build): removed from showing in the change log

This commit is contained in:
2025-03-23 11:10:00 -05:00
parent 9bdca3317c
commit e82208fc5e
2 changed files with 165 additions and 124 deletions

View File

@@ -8,7 +8,8 @@
{"type": "refactor", "section": "🛠️ Code Refactor"}, {"type": "refactor", "section": "🛠️ Code Refactor"},
{"type": "perf", "hidden": false, "section": "🚀 Performance"}, {"type": "perf", "hidden": false, "section": "🚀 Performance"},
{"type": "test", "section": "📝 Testing Code"}, {"type": "test", "section": "📝 Testing Code"},
{"type": "ci", "section": "📈 Project changes"} {"type": "ci", "hidden": false, "section": "📈 Project changes"}
{"type": "build", "hidden": true, "section": "📈 Project Builds"}
], ],
"commitUrlFormat": "https://git.tuffraid.net/cowch/lstV2/commits/{{hash}}", "commitUrlFormat": "https://git.tuffraid.net/cowch/lstV2/commits/{{hash}}",
"compareUrlFormat": "https://git.tuffraid.net/cowch/lstV2/compare/{{previousTag}}...{{currentTag}}", "compareUrlFormat": "https://git.tuffraid.net/cowch/lstV2/compare/{{previousTag}}...{{currentTag}}",

View File

@@ -1,153 +1,193 @@
import AdmZip from "adm-zip"; import AdmZip from "adm-zip";
import path from "path"; import path from "path";
import fs from "fs"; import fs from "fs";
import {execSync} from "child_process"; import { execSync } from "child_process";
import {createLog} from "../services/logger/logger.js"; import { createLog } from "../services/logger/logger.js";
import {getAppInfo} from "../globalUtils/appInfo.js"; import { getAppInfo } from "../globalUtils/appInfo.js";
// create the ignore list // create the ignore list
const ignoreList = [ const ignoreList = [
".git", ".git",
"builds", "builds",
"server", "server",
"node_modules", "node_modules",
"apiDocsLSTV2", "apiDocsLSTV2",
"testFiles", "testFiles",
".env", ".env",
".gitignore", ".gitignore",
".versionrc.json", ".versionrc.json",
"drizzle-dev.config.ts", "drizzle-dev.config.ts",
"nssm.exe", "nssm.exe",
"postgresql-17.2-3-windows-x64.exe", "postgresql-17.2-3-windows-x64.exe",
// front end ignore // front end ignore
"frontend/node_modules", "frontend/node_modules",
"fonrtend/.env", "fonrtend/.env",
"frontend/public", "frontend/public",
"frontend/src", "frontend/src",
"frontend/.gitignore", "frontend/.gitignore",
"frontend/eslint.config.js", "frontend/eslint.config.js",
"frontend/index.html", "frontend/index.html",
"frontend/package.json", "frontend/package.json",
"frontend/package-lock.json", "frontend/package-lock.json",
"frontend/README.md", "frontend/README.md",
"frontend/tsconfig.json", "frontend/tsconfig.json",
"frontend/tsconfig.app.json", "frontend/tsconfig.app.json",
"frontend/tsconfig.node.json", "frontend/tsconfig.node.json",
"frontend/vite.config.ts", "frontend/vite.config.ts",
"frontend/components.json", "frontend/components.json",
]; ];
const shouldIgnore = (itemPath: any) => { const shouldIgnore = (itemPath: any) => {
const normalizedItemPath = itemPath.replace(/\\/g, "/"); const normalizedItemPath = itemPath.replace(/\\/g, "/");
return ignoreList.some((ignorePattern) => { return ignoreList.some((ignorePattern) => {
const normalizedIgnorePatther = ignorePattern.replace(/\\/g, "/"); const normalizedIgnorePatther = ignorePattern.replace(/\\/g, "/");
return ( return (
normalizedItemPath === normalizedIgnorePatther || normalizedItemPath === normalizedIgnorePatther ||
normalizedItemPath.startsWith(`${normalizedIgnorePatther}/`) normalizedItemPath.startsWith(`${normalizedIgnorePatther}/`)
); );
}); });
}; };
const addToZip = (zip: any, currentPath: string, rootPath: string) => { const addToZip = (zip: any, currentPath: string, rootPath: string) => {
const items = fs.readdirSync(currentPath); const items = fs.readdirSync(currentPath);
items.forEach((item) => { items.forEach((item) => {
const itemPath = path.join(currentPath, item); const itemPath = path.join(currentPath, item);
const relativePath = path.relative(rootPath, itemPath); const relativePath = path.relative(rootPath, itemPath);
// Skip if the item is in the ignore list // Skip if the item is in the ignore list
if (shouldIgnore(relativePath)) { if (shouldIgnore(relativePath)) {
createLog("info", "lst", "zipUpBuild", `Ignoring: ${relativePath}`); createLog("info", "lst", "zipUpBuild", `Ignoring: ${relativePath}`);
return; return;
} }
const stat = fs.statSync(itemPath); const stat = fs.statSync(itemPath);
if (stat.isDirectory()) { if (stat.isDirectory()) {
// If it's a directory, recursively add its contents // If it's a directory, recursively add its contents
addToZip(zip, itemPath, rootPath); addToZip(zip, itemPath, rootPath);
} else { } else {
// If it's a file, add it to the zip with the preserved folder structure // If it's a file, add it to the zip with the preserved folder structure
zip.addLocalFile(itemPath, path.dirname(relativePath)); zip.addLocalFile(itemPath, path.dirname(relativePath));
} }
}); });
}; };
const updateBuildNumber = (appLock: string) => { const updateBuildNumber = (appLock: string) => {
const packagePath = path.join(appLock, "package.json"); // Adjust path if necessary const packagePath = path.join(appLock, "package.json"); // Adjust path if necessary
try { try {
// Read package.json // Read package.json
const pkgData = fs.readFileSync(packagePath, "utf8"); const pkgData = fs.readFileSync(packagePath, "utf8");
const pkgJson = JSON.parse(pkgData); const pkgJson = JSON.parse(pkgData);
// Ensure admConfig exists // Ensure admConfig exists
if (pkgJson.admConfig && typeof pkgJson.admConfig.build === "number") { if (pkgJson.admConfig && typeof pkgJson.admConfig.build === "number") {
// Increment the build number // Increment the build number
pkgJson.admConfig.build += 1; pkgJson.admConfig.build += 1;
// Write the updated data back // Write the updated data back
fs.writeFileSync(packagePath, JSON.stringify(pkgJson, null, 2), "utf8"); fs.writeFileSync(packagePath, JSON.stringify(pkgJson, null, 2), "utf8");
createLog("info", "lst", "zipUpBuild", `Build number updated to: ${pkgJson.admConfig.build}`); createLog(
// Auto-commit changes "info",
execSync("git add package.json"); "lst",
execSync(`git commit -m "chore: bump build number to ${pkgJson.admConfig.build}"`); "zipUpBuild",
} else { `Build number updated to: ${pkgJson.admConfig.build}`
createLog("error", "lst", "zipUpBuild", "admConfig.build is missing or not a number"); );
} // Auto-commit changes
} catch (error) { execSync("git add package.json");
createLog("error", "lst", "zipUpBuild", `Error updating build number: ${error}`); execSync(
`git commit -m "build: bump build number to ${pkgJson.admConfig.build}"`
);
} else {
createLog(
"error",
"lst",
"zipUpBuild",
"admConfig.build is missing or not a number"
);
} }
} catch (error) {
createLog(
"error",
"lst",
"zipUpBuild",
`Error updating build number: ${error}`
);
}
}; };
export const createZip = async (appLock: string) => { export const createZip = async (appLock: string) => {
const app = await getAppInfo(appLock); const app = await getAppInfo(appLock);
const zip = new AdmZip(); const zip = new AdmZip();
//dest path for this app... hard coded for meow will be in db later //dest path for this app... hard coded for meow will be in db later
const destPath = `${process.env.DEVFOLDER}\\builds`; const destPath = `${process.env.DEVFOLDER}\\builds`;
const srcPath = `${process.env.DEVFOLDER}`; const srcPath = `${process.env.DEVFOLDER}`;
addToZip(zip, srcPath, srcPath); addToZip(zip, srcPath, srcPath);
// Write the zip file to disk // Write the zip file to disk
const outputZipPath = path.join(destPath, `${app.name}-${app.version}-${app.admConfig.build}.zip`); const outputZipPath = path.join(
zip.writeZip(outputZipPath); destPath,
`${app.name}-${app.version}-${app.admConfig.build}.zip`
);
zip.writeZip(outputZipPath);
createLog("info", "lst", "zipUpBuild", `Zip file created at ${outputZipPath}`); createLog(
updateBuildNumber(appLock); "info",
"lst",
"zipUpBuild",
`Zip file created at ${outputZipPath}`
);
updateBuildNumber(appLock);
// only keep the last 5 builds for the type we have. // only keep the last 5 builds for the type we have.
try { try {
const appFiles = fs const appFiles = fs
.readdirSync(destPath) .readdirSync(destPath)
.filter((file) => file.startsWith(app.name)) // Ensure only backend files are matched .filter((file) => file.startsWith(app.name)) // Ensure only backend files are matched
.map((file) => ({ .map((file) => ({
name: file, name: file,
time: fs.statSync(path.join(destPath, file)).mtime.getTime(), time: fs.statSync(path.join(destPath, file)).mtime.getTime(),
})) }))
.sort((a, b) => a.time - b.time); // Sort by modification time (oldest first) .sort((a, b) => a.time - b.time); // Sort by modification time (oldest first)
createLog("info", "lst", "zipUpBuild", `app Files (sorted by time):", ${JSON.stringify(appFiles)}`); createLog(
"info",
"lst",
"zipUpBuild",
`app Files (sorted by time):", ${JSON.stringify(appFiles)}`
);
if (appFiles.length > 5) { if (appFiles.length > 5) {
appFiles.slice(0, -5).forEach((file) => { appFiles.slice(0, -5).forEach((file) => {
const filePath = path.join(destPath, file.name); const filePath = path.join(destPath, file.name);
try { try {
fs.unlinkSync(filePath); fs.unlinkSync(filePath);
createLog("info", "lst", "zipUpBuild", `Deleted: ${file.name}`); createLog("info", "lst", "zipUpBuild", `Deleted: ${file.name}`);
} catch (error: any) { } catch (error: any) {
createLog("error", "lst", "zipUpBuild", `Failed to delete ${file.name}: ${error.message}`); createLog(
} "error",
}); "lst",
} else { "zipUpBuild",
createLog("info", "lst", "zipUpBuild", "No files to delete."); `Failed to delete ${file.name}: ${error.message}`
);
} }
} catch (error: any) { });
createLog("error", "lst", "zipUpBuild", `Error reading directory or deleting files:", ${error.message}`); } else {
createLog("info", "lst", "zipUpBuild", "No files to delete.");
} }
} catch (error: any) {
createLog(
"error",
"lst",
"zipUpBuild",
`Error reading directory or deleting files:", ${error.message}`
);
}
}; };
//createZip("C:\\Users\\matthes01\\Documents\\lstv2"); //createZip("C:\\Users\\matthes01\\Documents\\lstv2");
@@ -155,16 +195,16 @@ export const createZip = async (appLock: string) => {
// Only call `createZip` if the script is executed directly // Only call `createZip` if the script is executed directly
if (process.argv.length > 2) { if (process.argv.length > 2) {
const location = process.argv[2]; const location = process.argv[2];
if (!location) { if (!location) {
createLog("error", "lst", "zipUpBuild", "Error: No location provided.");
process.exit(1);
} else {
createLog("info", "lst", "zipUpBuild", "Startiing the zip process.");
}
createZip(location);
} else {
createLog("error", "lst", "zipUpBuild", "Error: No location provided."); createLog("error", "lst", "zipUpBuild", "Error: No location provided.");
process.exit(1);
} else {
createLog("info", "lst", "zipUpBuild", "Startiing the zip process.");
}
createZip(location);
} else {
createLog("error", "lst", "zipUpBuild", "Error: No location provided.");
} }