From 084e54e8a6526e474f5740a7669c64fedd904926 Mon Sep 17 00:00:00 2001 From: Seshan Ravikumar Date: Sun, 20 Nov 2022 17:31:58 -0500 Subject: [PATCH] More debugging features --- README.md | 5 +++++ src/index.ts | 53 +++++++++++++++++++++++++++++----------------------- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 09e9f0c..51a2e9c 100755 --- a/README.md +++ b/README.md @@ -2,3 +2,8 @@ Nightly Alpine packages for Plasma Mobile from master/main and postmarketOS images. [The Images build script can be found here.](https://github.com/Sineware/plasma-mobile-nightly-img) + +### Environment Variables +- BUILD_SINGLE_PACKAGE = string: (build a single package from repo.ts) +- PACKAGE_LIST = string,string,string...: (build the list of packages) +- IGNORE_GIT_SILENT = true/false: (build packages even if the last commit was GIT_SILENT) diff --git a/src/index.ts b/src/index.ts index de60022..6c1d2cd 100755 --- a/src/index.ts +++ b/src/index.ts @@ -27,9 +27,7 @@ const WORKDIR = path.join(process.cwd(), "workdir"); const ABUILD_WRAPPER = path.join(__dirname, "abuild-wrapper.sh"); const ALPINE_APORTS_REPO = "https://gitlab.alpinelinux.org/alpine/aports.git"; const ARCH = exec("uname -m", false).toString().trim(); -if(process.env.BUILD_ALL === "true") { - process.exit(1); -} + let builtList: string[] = []; console.log("WORKDIR: " + WORKDIR); @@ -58,26 +56,35 @@ let buildStep = ""; // clear repository folder //exec("rm -rfv ~/packages/prolinux-nightly/*"); - // Get list from repository or the environment variable PACKAGE_LIST - let packages: string[] = []; - if(process.env.PACKAGE_LIST) { - packages = process.env.PACKAGE_LIST.split(","); + if(process.env.BUILD_SINGLE_PACKAGE) { + console.log("📦 Building single package " + process.env.BUILD_SINGLE_PACKAGE); + buildStep = "build-single-package"; + if(!repository.has(process.env.BUILD_SINGLE_PACKAGE)) { + throw new Error("Package not found in repo.ts"); + } + await buildPackage(repository.get(process.env.BUILD_SINGLE_PACKAGE)!); } else { - packages = Array.from(repository.keys()); - } - console.log("📦 Package list: " + packages.join(", ")); - let repoTotal = 0; - for (const pkg of packages) { - let fullList = parsePackageDependencies(pkg).filter((p) => repository.has(p)); - console.log("📦 Building " + pkg + " with dependencies: " + fullList.join(", ")); - let total = 0; - for (const d of fullList) { - await buildPackage(repository.get(d)!); - total++; - console.log("⏳ Built " + total + " of " + fullList.length + " dependencies for target " + pkg + " (" + repoTotal + "/" + repository.size + ")"); + // Get list from repository or the environment variable PACKAGE_LIST + let packages: string[] = []; + if(process.env.PACKAGE_LIST) { + packages = process.env.PACKAGE_LIST.split(","); + } else { + packages = Array.from(repository.keys()); + } + console.log("📦 Package list: " + packages.join(", ")); + let repoTotal = 0; + for (const pkg of packages) { + let fullList = parsePackageDependencies(pkg).filter((p) => repository.has(p)); + console.log("📦 Building " + pkg + " with dependencies: " + fullList.join(", ")); + let total = 0; + for (const d of fullList) { + await buildPackage(repository.get(d)!); + total++; + console.log("⏳ Built " + total + " of " + fullList.length + " dependencies for target " + pkg + " (" + repoTotal + "/" + repository.size + ")"); + } + console.log("✅ Built " + total + " packages for target " + pkg); + repoTotal++; } - console.log("✅ Built " + total + " packages for target " + pkg); - repoTotal++; } // Deploy files @@ -101,7 +108,7 @@ async function buildPackage(pkg: Package) { return; } // return if skipBuild is true - if (pkg.skipBuild && !process.env.PACKAGE_LIST?.split(",").includes(pkg.name)) { + if (pkg.skipBuild && !process.env.PACKAGE_LIST?.split(",").includes(pkg.name) && !process.env.BUILD_SINGLE_PACKAGE) { console.log("📦 -> Skip build is true, skipping"); return; } @@ -136,7 +143,7 @@ async function buildPackage(pkg: Package) { // Check if git commit message contains GIT_SILENT const gitLog = exec(`git -C ${pkgDir}/src/${pkg.name} log -1 --pretty=%B`, false).toString().trim(); - if (gitLog.includes("GIT_SILENT")) { + if (gitLog.includes("GIT_SILENT") && process.env.IGNORE_GIT_SILENT !== "true") { console.log("📦 -> GIT_SILENT found, skipping"); return; }