2016-05-25 03:23:48 +00:00
|
|
|
import "typings-global";
|
2016-02-19 23:53:23 +00:00
|
|
|
import plugins = require("./npmts.plugins");
|
2016-05-17 00:32:40 +00:00
|
|
|
import {npmtsOra} from "./npmts.promisechain";
|
2016-03-23 13:12:58 +00:00
|
|
|
|
2016-04-02 17:22:01 +00:00
|
|
|
export let isCi = function(){
|
|
|
|
return plugins.smartci.check.isCi();
|
|
|
|
};
|
|
|
|
|
2016-03-23 13:12:58 +00:00
|
|
|
export let isRelease = function():boolean {
|
2016-03-23 14:47:28 +00:00
|
|
|
return plugins.smartci.check.isCi()
|
|
|
|
&& plugins.smartci.check.isTaggedCommit();
|
|
|
|
};
|
|
|
|
|
|
|
|
export let doPublish = function():boolean {
|
2016-05-26 20:53:59 +00:00
|
|
|
try {
|
|
|
|
return isRelease()
|
|
|
|
&& plugins.smartci.get.subJobNumber() == 1;
|
|
|
|
}
|
|
|
|
catch (err){
|
|
|
|
return false;
|
|
|
|
}
|
2016-03-23 13:12:58 +00:00
|
|
|
};
|
|
|
|
|
2016-02-19 23:53:23 +00:00
|
|
|
export var run = function(configArg){
|
2016-02-22 21:22:39 +00:00
|
|
|
var done = plugins.Q.defer();
|
2016-02-19 23:53:23 +00:00
|
|
|
var config = configArg;
|
2016-03-23 13:12:58 +00:00
|
|
|
|
2016-05-17 00:32:40 +00:00
|
|
|
npmtsOra.text("now determining build options...");
|
2016-03-23 13:12:58 +00:00
|
|
|
|
|
|
|
//handle default mode
|
2016-02-19 23:53:23 +00:00
|
|
|
if (config.mode == "default"){
|
|
|
|
config.typings = [
|
2016-03-12 09:21:16 +00:00
|
|
|
"./ts/typings.json"
|
2016-02-19 23:53:23 +00:00
|
|
|
];
|
|
|
|
config.ts = {
|
|
|
|
["./ts/**/*.ts"]: "./dist/",
|
|
|
|
["./test/test.ts"]: "./test/"
|
|
|
|
};
|
|
|
|
config.test = ["./index.js"];
|
|
|
|
}
|
2016-04-30 09:55:42 +00:00
|
|
|
|
|
|
|
//check if config.tsOptions is available
|
|
|
|
config.tsOptions ? void(0) : config.tsOptions = {};
|
2016-03-23 13:12:58 +00:00
|
|
|
|
|
|
|
// handle state of current build
|
|
|
|
|
2016-03-23 14:47:28 +00:00
|
|
|
isRelease() ? plugins.beautylog.info("All right: This is a RELEASE build!")
|
2016-03-23 14:55:07 +00:00
|
|
|
: plugins.beautylog.info("NOT A RELEASE build!");
|
2016-04-02 17:22:01 +00:00
|
|
|
isRelease() && doPublish() ? plugins.beautylog.info("All right: This is the first subBuild, so this one publishes COVERAGE + DOCS when tests succeed!")
|
2016-03-23 14:55:07 +00:00
|
|
|
: plugins.beautylog.info("We are not publishing anything!");
|
2016-03-23 13:12:58 +00:00
|
|
|
|
2016-05-29 18:56:53 +00:00
|
|
|
// handle codecov
|
|
|
|
config.codecov ? void(0) : config.codecov = {};
|
|
|
|
config.codecov.publish ? void(0) : config.codecov.publish = false;
|
|
|
|
isCi() && (process.env.TRAVIS || config.codecov.token) ? void(0) : config.codecov = false;
|
|
|
|
|
2016-03-23 14:47:28 +00:00
|
|
|
|
2016-03-29 23:32:41 +00:00
|
|
|
config.coverageTreshold ? void(0) : config.coverageTreshold = 70;
|
|
|
|
|
2016-03-23 14:47:28 +00:00
|
|
|
// handle docs
|
|
|
|
config.docs ? void(0) : config.docs = {};
|
|
|
|
config.docs.publish ? void(0) : config.docs.publish = false;
|
|
|
|
doPublish() ? void(0) : config.docs.publish = false;
|
2016-03-23 13:12:58 +00:00
|
|
|
|
2016-04-01 23:20:52 +00:00
|
|
|
plugins.beautylog.ok("build options are ready!");
|
2016-03-23 13:12:58 +00:00
|
|
|
done.resolve(config);
|
2016-02-19 23:53:23 +00:00
|
|
|
return done.promise;
|
|
|
|
};
|