Aleksandar Aleksandrov b77cfce1ab GHA Publish to NPM
2023-02-02 12:32:40 +01:00

42 lines
1.3 KiB
JavaScript

/**
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
* Licensed under the GNU Affero General Public License (AGPL).
* See License.AGPL.txt in the project root for license information.
*/
// @ts-check
const fs = require("fs");
const path = require("path");
const child_process = require("child_process");
const qualifier = process.argv[2];
const rootDir = process.cwd();
const pckDir = path.join(rootDir, process.argv[3]);
if (process.env.DO_PUBLISH === "false") {
console.warn("Skipping publishing per request.");
process.exit(0);
}
if (process.env.NPM_AUTH_TOKEN) {
fs.writeFileSync(
path.join(pckDir, ".npmrc"),
`//registry.npmjs.org/:_authToken=${process.env.NPM_AUTH_TOKEN}\n`,
"utf-8",
);
} else {
console.warn("NPM_AUTH_TOKEN env variable is not set");
}
const pck = JSON.parse(fs.readFileSync(path.join(pckDir, "package.json"), "utf-8"));
pck.version = `${pck.version}-${qualifier}`;
fs.writeFileSync(path.join(pckDir, "package.json"), JSON.stringify(pck, undefined, 2), "utf-8");
const tag = qualifier.substr(0, qualifier.lastIndexOf("."));
child_process.execSync(
["yarn", "--cwd", pckDir, "publish", "--tag", tag, "--access", "public", "--ignore-scripts", "--network-timeout", "100000"].join(" "),
{ stdio: "inherit" },
);