aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-vsts/scripts/build.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-vsts/scripts/build.js')
-rw-r--r--server/sonar-vsts/scripts/build.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/server/sonar-vsts/scripts/build.js b/server/sonar-vsts/scripts/build.js
new file mode 100644
index 00000000000..1bdb4c78d87
--- /dev/null
+++ b/server/sonar-vsts/scripts/build.js
@@ -0,0 +1,56 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+/* eslint-disable no-console*/
+process.env.NODE_ENV = 'production';
+
+const chalk = require('chalk');
+const webpack = require('webpack');
+const sortBy = require('lodash/sortBy');
+const getConfig = require('../config/webpack.config');
+
+const config = getConfig({ production: true });
+
+function build() {
+ console.log(chalk.cyan.bold('Creating optimized production build...'));
+ console.log();
+
+ webpack(config, (err, stats) => {
+ if (err) {
+ console.log(chalk.red.bold('Failed to create a production build!'));
+ console.log(chalk.red(err.message || err));
+ process.exit(1);
+ }
+
+ if (stats.compilation.errors && stats.compilation.errors.length) {
+ console.log(chalk.red.bold('Failed to create a production build!'));
+ stats.compilation.errors.forEach(err => console.log(chalk.red(err.message || err)));
+ process.exit(1);
+ }
+
+ const jsonStats = stats.toJson();
+ const seconds = jsonStats.time / 1000;
+ console.log('Duration: ' + seconds.toFixed(2) + 's');
+ console.log();
+
+ console.log(chalk.green.bold('Compiled successfully!'));
+ });
+}
+
+build();