From 2c65a4f3ec54555e54fe98a3122fdfa270e02fbd Mon Sep 17 00:00:00 2001
From: Roosted7 <thomasroos@live.nl>
Date: Wed, 9 May 2018 17:53:14 +0200
Subject: [PATCH] Use git hash as version

---
 client/components/NavBar.jsx | 2 +-
 package.json                 | 1 +
 webpack.dev.js               | 8 ++++++++
 webpack.prod.js              | 8 ++++++++
 4 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/client/components/NavBar.jsx b/client/components/NavBar.jsx
index 4628339ca..18e3eea24 100644
--- a/client/components/NavBar.jsx
+++ b/client/components/NavBar.jsx
@@ -97,7 +97,7 @@ class NavBar extends React.Component {
                         <Link className="navbar-item" to='/graders'>Manage graders</Link>
                         <Link className="navbar-item has-text-info" to='/reset'>reset</Link>
                         <div className="navbar-item">
-                            <i>Version 0.6.4</i>
+                            <i>Version { __COMMIT_HASH__ }</i>
                         </div>
                     </div>
                 </div>
diff --git a/package.json b/package.json
index 89cf2a34d..45da96d96 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
     "font-awesome": "^4.7.0",
     "fuse.js": "^3.2.0",
     "get-closest": "^0.0.4",
+    "git-revision-webpack-plugin": "^3.0.3",
     "html-webpack-plugin": "^3.2.0",
     "mini-css-extract-plugin": "^0.4.0",
     "mousetrap": "^1.6.1",
diff --git a/webpack.dev.js b/webpack.dev.js
index d8dc133ef..9ca388ea3 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -2,6 +2,11 @@ const webpack = require('webpack');
 const merge = require('webpack-merge');
 const common = require('./webpack.common.js');
 
+const commitHash = require('child_process')
+    .execSync('git rev-parse --short HEAD')
+    .toString()
+    .trim();
+
 module.exports = merge(common, {
     mode: 'development',
     module: {
@@ -29,6 +34,9 @@ module.exports = merge(common, {
     plugins: [
         new webpack.EvalSourceMapDevToolPlugin({
             sourceURLTemplate: module => `/${module.identifier}`
+        }),
+        new webpack.DefinePlugin({
+            __COMMIT_HASH__: JSON.stringify(commitHash +  '-dev'),
         })
     ]
 })
\ No newline at end of file
diff --git a/webpack.prod.js b/webpack.prod.js
index 43bf21545..d01f43de9 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -5,6 +5,11 @@ const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const common = require('./webpack.common.js');
 
+const commitHash = require('child_process')
+    .execSync('git rev-parse --short HEAD')
+    .toString()
+    .trim();
+
 module.exports = merge(common, {
 
     mode: 'production',
@@ -36,6 +41,9 @@ module.exports = merge(common, {
         new MiniCssExtractPlugin({
             filename: "[name].css",
             chunkFilename: "[id].css"
+        }),
+        new webpack.DefinePlugin({
+            __COMMIT_HASH__: JSON.stringify(commitHash +  '-prod'),
         })
    ]
 })
\ No newline at end of file
-- 
GitLab