diff --git a/frontend/package.json b/frontend/package.json index 2d6b8ec1b..c859ca5dd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -75,6 +75,7 @@ "eslint-plugin-react": "^7.29.4", "eslint-plugin-react-hooks": "^4.4.0", "eslint-webpack-plugin": "^3.1.1", + "git-revision-webpack-plugin": "^5.0.0", "html-webpack-plugin": "^5.5.0", "jest": "^27.5.1", "mini-css-extract-plugin": "^2.6.0", diff --git a/frontend/packages/akt/public/index.html b/frontend/packages/akt/public/index.html index 7903feaba..991eb6be2 100644 --- a/frontend/packages/akt/public/index.html +++ b/frontend/packages/akt/public/index.html @@ -7,6 +7,7 @@ name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> + { const STATIC_PATH = 'akt/static'; const mode = env.prod ? 'production' : 'development'; + const gitRevisionPlugin = new GitRevisionPlugin({ + branch: true, + }); + return { mode, entry: path.join(__dirname, 'src', 'index.tsx'), @@ -34,10 +39,6 @@ module.exports = (env) => { new MiniCssExtractPlugin({ filename: `${STATIC_PATH}/css/[name].css`, }), - new HtmlWebpackPlugin({ - publicPath: env.prod ? '/akt/' : '/', - template: path.join(__dirname, 'public', 'index.html'), - }), new CopyPlugin({ patterns: [ { @@ -46,9 +47,17 @@ module.exports = (env) => { }, ], }), + gitRevisionPlugin, new webpack.DefinePlugin({ REACT_ENV_PRODUCTION: JSON.stringify(Boolean(env.prod)), }), + new HtmlWebpackPlugin({ + publicPath: env.prod ? '/akt/' : '/', + template: path.join(__dirname, 'public', 'index.html'), + templateParameters: { + GIT_INFO: `${gitRevisionPlugin.branch()}-${gitRevisionPlugin.commithash()}`, + }, + }), ...getESLintPlugin(env), ...getStylelintPlugin(env), ], diff --git a/frontend/yarn.lock b/frontend/yarn.lock index e69b0f014..98827c5be 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2376,6 +2376,7 @@ __metadata: eslint-plugin-react-hooks: ^4.4.0 eslint-webpack-plugin: ^3.1.1 finnish-personal-identity-code-validator: ^2.1.0 + git-revision-webpack-plugin: ^5.0.0 html-webpack-plugin: ^5.5.0 i18next: ^21.6.16 i18next-browser-languagedetector: ^6.1.4 @@ -6628,6 +6629,15 @@ __metadata: languageName: node linkType: hard +"git-revision-webpack-plugin@npm:^5.0.0": + version: 5.0.0 + resolution: "git-revision-webpack-plugin@npm:5.0.0" + peerDependencies: + webpack: ^5.0.0 + checksum: be40634cf0a317f02b6231e77a7f97f5ae85855f87d88ee821500e8ad33a25168b96d47f1be8f2d3e814c22b58b7b9fef732aea5e0ba054b1d181c93d4212de7 + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2"