ruffle/web/packages/core/tools/set_version.js

64 lines
1.9 KiB
JavaScript
Raw Normal View History

const replace = require("replace-in-file");
const childProcess = require("child_process");
2023-01-21 01:22:29 +00:00
const fs = require("fs");
let version_number = process.env.npm_package_version;
let version_channel = process.env.CFG_RELEASE_CHANNEL || "nightly";
let build_date = new Date().toISOString();
const firefox_extension_id =
process.env.FIREFOX_EXTENSION_ID || "ruffle@ruffle.rs";
let commitHash = "unknown";
try {
commitHash = childProcess.execSync("git rev-parse HEAD").toString().trim();
} catch {
console.log("Couldn't fetch latest git commit...");
}
let version_name =
version_channel === "nightly"
? `nightly ${build_date.substr(0, 10)}`
: process.env.npm_package_version;
2023-01-21 01:22:29 +00:00
let version_seal = {};
if (process.env.ENABLE_VERSION_SEAL === "true") {
2023-01-21 01:22:29 +00:00
if (fs.existsSync("version_seal.json")) {
// Using the version seal stored previously.
version_seal = JSON.parse(fs.readFileSync("version_seal.json"));
2023-01-21 01:22:29 +00:00
version_number = version_seal.version_number;
version_name = version_seal.version_name;
version_channel = version_seal.version_channel;
build_date = version_seal.build_date;
commitHash = version_seal.commitHash;
} else {
version_seal = {
2023-01-21 01:22:29 +00:00
version_number: version_number,
version_name: version_name,
version_channel: version_channel,
build_date: build_date,
commitHash: commitHash,
build_id: process.env.BUILD_ID,
firefox_extension_id: firefox_extension_id,
2023-01-21 01:22:29 +00:00
};
fs.writeFileSync("version_seal.json", JSON.stringify(version_seal));
}
}
const options = {
files: "dist/**",
from: [
/%VERSION_NUMBER%/g,
/%VERSION_NAME%/g,
/%VERSION_CHANNEL%/g,
/%BUILD_DATE%/g,
/%COMMIT_HASH%/g,
],
to: [version_number, version_name, version_channel, build_date, commitHash],
};
replace.sync(options);