|
@@ -1,5 +1,6 @@
|
|
|
const fs = require("fs");
|
|
|
const { exec, execSync } = require("child_process");
|
|
|
+const core = require("@actions/core");
|
|
|
|
|
|
const excalidrawDir = `${__dirname}/../src/packages/excalidraw`;
|
|
|
const excalidrawPackage = `${excalidrawDir}/package.json`;
|
|
@@ -15,18 +16,25 @@ const publish = () => {
|
|
|
execSync(`yarn --frozen-lockfile`, { cwd: excalidrawDir });
|
|
|
execSync(`yarn run build:umd`, { cwd: excalidrawDir });
|
|
|
execSync(`yarn --cwd ${excalidrawDir} publish`);
|
|
|
+ console.info("Published 🎉");
|
|
|
+ core.setOutput(
|
|
|
+ "result",
|
|
|
+ `**Preview version has been shipped** :rocket:
|
|
|
+ You can use [@excalidraw/excalidraw-preview@${pkg.version}](https://www.npmjs.com/package/@excalidraw/excalidraw-preview/v/${pkg.version}) for testing!`,
|
|
|
+ );
|
|
|
} catch (error) {
|
|
|
+ core.setOutput("result", "package couldn't be published :warning:!");
|
|
|
console.error(error);
|
|
|
+ process.exit(1);
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
// get files changed between prev and head commit
|
|
|
exec(`git diff --name-only HEAD^ HEAD`, async (error, stdout, stderr) => {
|
|
|
if (error || stderr) {
|
|
|
console.error(error);
|
|
|
+ core.setOutput("result", ":warning: Package couldn't be published!");
|
|
|
process.exit(1);
|
|
|
}
|
|
|
-
|
|
|
const changedFiles = stdout.trim().split("\n");
|
|
|
const filesToIgnoreRegex = /src\/excalidraw-app|packages\/utils/;
|
|
|
|
|
@@ -37,16 +45,33 @@ exec(`git diff --name-only HEAD^ HEAD`, async (error, stdout, stderr) => {
|
|
|
);
|
|
|
});
|
|
|
if (!excalidrawPackageFiles.length) {
|
|
|
+ console.info("Skipping release as no valid diff found");
|
|
|
+ core.setOutput("result", "Skipping release as no valid diff found");
|
|
|
process.exit(0);
|
|
|
}
|
|
|
|
|
|
// update package.json
|
|
|
- pkg.version = `${pkg.version}-${getShortCommitHash()}`;
|
|
|
pkg.name = "@excalidraw/excalidraw-next";
|
|
|
- fs.writeFileSync(excalidrawPackage, JSON.stringify(pkg, null, 2), "utf8");
|
|
|
+ let version = `${pkg.version}-${getShortCommitHash()}`;
|
|
|
|
|
|
// update readme
|
|
|
- const data = fs.readFileSync(`${excalidrawDir}/README_NEXT.md`, "utf8");
|
|
|
+ let data = fs.readFileSync(`${excalidrawDir}/README_NEXT.md`, "utf8");
|
|
|
+
|
|
|
+ const isPreview = process.argv.slice(2)[0] === "preview";
|
|
|
+ if (isPreview) {
|
|
|
+ // use pullNumber-commithash as the version for preview
|
|
|
+ const pullRequestNumber = process.argv.slice(3)[0];
|
|
|
+ version = `${pkg.version}-${pullRequestNumber}-${getShortCommitHash()}`;
|
|
|
+ // replace "excalidraw-next" with "excalidraw-preview"
|
|
|
+ pkg.name = "@excalidraw/excalidraw-preview";
|
|
|
+ data = data.replace(/excalidraw-next/g, "excalidraw-preview");
|
|
|
+ data = data.trim();
|
|
|
+ }
|
|
|
+ pkg.version = version;
|
|
|
+
|
|
|
+ fs.writeFileSync(excalidrawPackage, JSON.stringify(pkg, null, 2), "utf8");
|
|
|
+
|
|
|
fs.writeFileSync(`${excalidrawDir}/README.md`, data, "utf8");
|
|
|
+ console.info("Publish in progress...");
|
|
|
publish();
|
|
|
});
|