namillum
Version:
Bubble Protocol SDK
82 lines (67 loc) • 2.13 kB
text/typescript
// Copyright (C) 2018 Zilliqa
//
// This file is part of zilliqa-js
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import lerna from "lerna";
import project from "./project";
import { createLogger } from "./logger";
const DIST_TAG = "next";
const log = createLogger("publish");
const getVersion = async () => {
const re = /(\d+)\.(\d+)\.(\d+)($|\-)/;
const match = project.lerna.version.match(re);
if (match === null) {
throw new Error("Lerna version is malformed.");
}
const [, major, minor, patch] = match;
return { major, minor, patch };
};
const getDate = (sep?: string): string => {
const s = sep === undefined ? "" : sep;
const raw = new Date()
.toISOString()
.replace(/:|T|\.|-/g, "")
.slice(0, 8);
const y = raw.slice(0, 4);
const m = raw.slice(4, 6);
const d = raw.slice(6, 8);
return `${y}${s}${m}${s}${d}`;
};
const publish = async () => {
if (process.env.CI && process.env.TRAVIS_BRANCH !== "master") {
return;
}
try {
const { major, minor, patch } = await getVersion();
const version = `${major}.${minor}.${patch}-${DIST_TAG}.${getDate()}`;
lerna([
"publish",
version,
"--npm-tag",
DIST_TAG,
"--exact",
"--no-git-tag-version",
"--no-push",
"--no-verify-access",
"--no-verify-registry",
"-y",
]);
return version;
} catch (err) {
log(`Could not publish: ${err}`);
throw err;
}
};
publish().then((v) => log(`Published new packages with version ${v}`));