summaryrefslogtreecommitdiffstats
path: root/extra/release/final.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/release/final.mjs')
-rw-r--r--extra/release/final.mjs57
1 files changed, 57 insertions, 0 deletions
diff --git a/extra/release/final.mjs b/extra/release/final.mjs
new file mode 100644
index 0000000..d190ac0
--- /dev/null
+++ b/extra/release/final.mjs
@@ -0,0 +1,57 @@
+import "dotenv/config";
+import {
+ ver,
+ buildDist,
+ buildImage,
+ checkDocker,
+ checkTagExists,
+ checkVersionFormat,
+ getRepoName,
+ pressAnyKey, execSync, uploadArtifacts
+} from "./lib.mjs";
+
+const repoName = getRepoName();
+const version = process.env.RELEASE_VERSION;
+const githubToken = process.env.RELEASE_GITHUB_TOKEN;
+
+console.log("RELEASE_VERSION:", version);
+
+if (!githubToken) {
+ console.error("GITHUB_TOKEN is required");
+ process.exit(1);
+}
+
+// Check if the version is a valid semver
+checkVersionFormat(version);
+
+// Check if docker is running
+checkDocker();
+
+// Check if the tag exists
+await checkTagExists(repoName, version);
+
+// node extra/beta/update-version.js
+execSync("node extra/update-version.js");
+
+// Build frontend dist
+buildDist();
+
+// Build slim image (rootless)
+buildImage(repoName, [ "2-slim-rootless", ver(version, "slim-rootless") ], "rootless", "BASE_IMAGE=louislam/uptime-kuma:base2-slim");
+
+// Build full image (rootless)
+buildImage(repoName, [ "2-rootless", ver(version, "rootless") ], "rootless");
+
+// Build slim image
+buildImage(repoName, [ "next-slim", "2-slim", ver(version, "slim") ], "release", "BASE_IMAGE=louislam/uptime-kuma:base2-slim");
+
+// Build full image
+buildImage(repoName, [ "next", "2", version ], "release");
+
+await pressAnyKey();
+
+// npm run upload-artifacts
+uploadArtifacts();
+
+// node extra/update-wiki-version.js
+execSync("node extra/update-wiki-version.js");