diff --git a/.github/workflows/automated-tests.yaml b/.github/workflows/automated-tests.yaml index 13ff5aea49..921bba49aa 100644 --- a/.github/workflows/automated-tests.yaml +++ b/.github/workflows/automated-tests.yaml @@ -39,7 +39,7 @@ jobs: timeout-minutes: 30 strategy: matrix: - node-version: [22.x, 24.x, 26.0.0] + node-version: [22.x, 24.15.0, 26.0.0] steps: - name: Install electron dependencies and labwc run: | diff --git a/js/systeminformation.js b/js/systeminformation.js index f0529f36b2..085c582f58 100644 --- a/js/systeminformation.js +++ b/js/systeminformation.js @@ -1,9 +1,19 @@ const os = require("node:os"); +const { execFileSync } = require("node:child_process"); const si = require("systeminformation"); // needed with relative path because logSystemInformation is called in an own process in app.js: const mmVersion = require("../package").version; const Log = require("./logger"); +let mmGitHash = ""; +let mmGitBranch = ""; +try { + mmGitHash = execFileSync("git", ["rev-parse", "--short", "HEAD"], { encoding: "utf8" }).trim(); + mmGitBranch = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { encoding: "utf8" }).trim(); +} catch { + // not a git repo or git not available +} + const logSystemInformation = async () => { try { const system = await si.system(); @@ -17,7 +27,8 @@ const logSystemInformation = async () => { let systemDataString = [ "\n#### System Information ####", - `- SYSTEM: manufacturer: ${system.manufacturer}; model: ${system.model}; virtual: ${system.virtual}; MM: v${mmVersion}`, + `- MM: version: v${mmVersion}${mmGitHash ? `; git: ${mmGitHash}` : ""}${mmGitBranch ? `; branch: ${mmGitBranch}` : ""}`, + `- SYSTEM: manufacturer: ${system.manufacturer}; model: ${system.model}; virtual: ${system.virtual}`, `- OS: platform: ${osInfo.platform}; distro: ${osInfo.distro}; release: ${osInfo.release}; arch: ${osInfo.arch}; kernel: ${versions.kernel}`, `- VERSIONS: electron: ${process.env.ELECTRON_VERSION}; used node: ${process.env.USED_NODE_VERSION}; installed node: ${installedNodeVersion}; npm: ${versions.npm}; pm2: ${versions.pm2}`, `- ENV: XDG_SESSION_TYPE: ${process.env.XDG_SESSION_TYPE}; MM_CONFIG_FILE: ${process.env.MM_CONFIG_FILE}`,