chore: configure releases and develop workflow
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
const assert = require("node:assert/strict");
|
||||
const { execFileSync } = require("node:child_process");
|
||||
const { version } = require("../package.json");
|
||||
const git = (...args) => execFileSync("git", args, { encoding: "utf8" }).trim();
|
||||
|
||||
assert.equal(
|
||||
git("status", "--porcelain"),
|
||||
"",
|
||||
"Commit all changes before preparing a release",
|
||||
);
|
||||
const tags = git(
|
||||
"tag",
|
||||
"--merged",
|
||||
"HEAD",
|
||||
"--list",
|
||||
"v[0-9]*",
|
||||
"--sort=-version:refname",
|
||||
)
|
||||
.split("\n")
|
||||
.filter((tag) => /^v\d+\.\d+\.\d+$/.test(tag));
|
||||
assert.equal(
|
||||
version,
|
||||
tags[0]?.slice(1) ?? "0.0.0",
|
||||
"Version is already prepared or release tags are missing. Fetch tags; finish the existing release before preparing another.",
|
||||
);
|
||||
Reference in New Issue
Block a user