// 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 . 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}`));