From e3719aeddafd96f43f3c8fbd374b802f753dcc93 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 18 Nov 2025 21:53:11 -0500 Subject: [PATCH 1/4] Add hidden UI version to verify Konflux image has been updated --- apps/koku-ui-hccm/fec.config.js | 7 ++++ apps/koku-ui-hccm/package.json | 1 + apps/koku-ui-hccm/src/app.tsx | 2 + apps/koku-ui-ros/fec.config.js | 7 ++++ apps/koku-ui-ros/package.json | 1 + apps/koku-ui-ros/src/app.tsx | 2 + .../src/fed-modules/optimizationsWrapper.tsx | 4 ++ .../src/components/page/uiVersion/index.ts | 3 ++ .../components/page/uiVersion/uiVersion.tsx | 11 ++++++ package-lock.json | 37 +++++++++++++++++++ 10 files changed, 75 insertions(+) create mode 100644 libs/ui-lib/src/components/page/uiVersion/index.ts create mode 100644 libs/ui-lib/src/components/page/uiVersion/uiVersion.tsx diff --git a/apps/koku-ui-hccm/fec.config.js b/apps/koku-ui-hccm/fec.config.js index 8a4a17cde..a032a56a4 100644 --- a/apps/koku-ui-hccm/fec.config.js +++ b/apps/koku-ui-hccm/fec.config.js @@ -1,6 +1,7 @@ // Based on https://github.com/RedHatInsights/frontend-components/blob/master/packages/config/src/bin/dev.webpack.config.ts const CopyWebpackPlugin = require('copy-webpack-plugin'); +const { GitRevisionPlugin } = require('git-revision-webpack-plugin'); const path = require('path'); const webpack = require('webpack'); const { dependencies, insights } = require('./package.json'); @@ -14,6 +15,7 @@ const stats = { colors: true, modules: false, }; +const gitRevisionPlugin = new GitRevisionPlugin(); // Show what files changed since last compilation class WatchRunPlugin { @@ -85,6 +87,11 @@ module.exports = { }, ], }), + gitRevisionPlugin, + new webpack.DefinePlugin({ + 'process.env.COMMITHASH': JSON.stringify(gitRevisionPlugin.commithash()), + 'process.env.BRANCH': JSON.stringify(gitRevisionPlugin.branch()), + }), ], resolve: { modules: [srcDir, path.resolve(__dirname, '../../node_modules')], diff --git a/apps/koku-ui-hccm/package.json b/apps/koku-ui-hccm/package.json index 30846caca..85000afd7 100644 --- a/apps/koku-ui-hccm/package.json +++ b/apps/koku-ui-hccm/package.json @@ -115,6 +115,7 @@ "@types/react-redux": "^7.1.34", "@types/react-router-dom": "^5.3.3", "copy-webpack-plugin": "^13.0.1", + "git-revision-webpack-plugin": "^5.0.0", "globals": "^16.5.0", "identity-obj-proxy": "^3.0.0", "ts-patch": "^3.3.0", diff --git a/apps/koku-ui-hccm/src/app.tsx b/apps/koku-ui-hccm/src/app.tsx index cd587cae6..65f0e9293 100644 --- a/apps/koku-ui-hccm/src/app.tsx +++ b/apps/koku-ui-hccm/src/app.tsx @@ -1,5 +1,6 @@ import './app.scss'; +import UiVersion from '@koku-ui/ui-lib/components/page/uiVersion'; import { useChrome } from '@redhat-cloud-services/frontend-components/useChrome'; import NotificationsProvider from '@redhat-cloud-services/frontend-components-notifications/NotificationsProvider'; import { createStore } from '@redhat-cloud-services/frontend-components-notifications/state'; @@ -37,6 +38,7 @@ const App = () => { + ); }; diff --git a/apps/koku-ui-ros/fec.config.js b/apps/koku-ui-ros/fec.config.js index ab10394d1..b8e8e1b39 100644 --- a/apps/koku-ui-ros/fec.config.js +++ b/apps/koku-ui-ros/fec.config.js @@ -1,6 +1,7 @@ // Based on https://github.com/RedHatInsights/frontend-components/blob/master/packages/config/src/bin/dev.webpack.config.ts const CopyWebpackPlugin = require('copy-webpack-plugin'); +const { GitRevisionPlugin } = require('git-revision-webpack-plugin'); const path = require('path'); const webpack = require('webpack'); const { dependencies, insights } = require('./package.json'); @@ -14,6 +15,7 @@ const stats = { colors: true, modules: false, }; +const gitRevisionPlugin = new GitRevisionPlugin(); // Show what files changed since last compilation class WatchRunPlugin { @@ -89,6 +91,11 @@ module.exports = { }, ], }), + gitRevisionPlugin, + new webpack.DefinePlugin({ + 'process.env.COMMITHASH': JSON.stringify(gitRevisionPlugin.commithash()), + 'process.env.BRANCH': JSON.stringify(gitRevisionPlugin.branch()), + }), ], resolve: { modules: [srcDir, path.resolve(__dirname, '../../node_modules')], diff --git a/apps/koku-ui-ros/package.json b/apps/koku-ui-ros/package.json index 5ce8f18d3..27c1d960a 100644 --- a/apps/koku-ui-ros/package.json +++ b/apps/koku-ui-ros/package.json @@ -110,6 +110,7 @@ "@types/react-router-dom": "^5.3.3", "copy-webpack-plugin": "^13.0.1", "globals": "^16.5.0", + "git-revision-webpack-plugin": "^5.0.0", "identity-obj-proxy": "^3.0.0", "jws": "^4.0.0", "ts-patch": "^3.3.0", diff --git a/apps/koku-ui-ros/src/app.tsx b/apps/koku-ui-ros/src/app.tsx index cd587cae6..65f0e9293 100644 --- a/apps/koku-ui-ros/src/app.tsx +++ b/apps/koku-ui-ros/src/app.tsx @@ -1,5 +1,6 @@ import './app.scss'; +import UiVersion from '@koku-ui/ui-lib/components/page/uiVersion'; import { useChrome } from '@redhat-cloud-services/frontend-components/useChrome'; import NotificationsProvider from '@redhat-cloud-services/frontend-components-notifications/NotificationsProvider'; import { createStore } from '@redhat-cloud-services/frontend-components-notifications/state'; @@ -37,6 +38,7 @@ const App = () => { + ); }; diff --git a/apps/koku-ui-ros/src/fed-modules/optimizationsWrapper.tsx b/apps/koku-ui-ros/src/fed-modules/optimizationsWrapper.tsx index 58957a849..5f6936690 100644 --- a/apps/koku-ui-ros/src/fed-modules/optimizationsWrapper.tsx +++ b/apps/koku-ui-ros/src/fed-modules/optimizationsWrapper.tsx @@ -1,4 +1,5 @@ /* eslint-disable no-console */ +import UiVersion from '@koku-ui/ui-lib/components/page/uiVersion'; import IntlProvider from '@redhat-cloud-services/frontend-components-translations/Provider'; import { getLocale } from 'components/i18n'; import React from 'react'; @@ -7,6 +8,8 @@ import { rosStore } from 'store'; // eslint-disable-next-line no-restricted-imports import messages from '../../locales/data.json'; +// eslint-disable-next-line no-restricted-imports +import pkg from '../../package.json'; export interface OptimizationsWrapperOwnProps { children?: React.ReactNode; @@ -22,6 +25,7 @@ const OptimizationsWrapper: React.FC = ({ children }:
{children}
+
); diff --git a/libs/ui-lib/src/components/page/uiVersion/index.ts b/libs/ui-lib/src/components/page/uiVersion/index.ts new file mode 100644 index 000000000..d7153db4e --- /dev/null +++ b/libs/ui-lib/src/components/page/uiVersion/index.ts @@ -0,0 +1,3 @@ +import UiVersion from './uiVersion'; + +export default UiVersion; diff --git a/libs/ui-lib/src/components/page/uiVersion/uiVersion.tsx b/libs/ui-lib/src/components/page/uiVersion/uiVersion.tsx new file mode 100644 index 000000000..6b598eccf --- /dev/null +++ b/libs/ui-lib/src/components/page/uiVersion/uiVersion.tsx @@ -0,0 +1,11 @@ +import React from 'react'; + +interface UiVersionProps { + appName?: string; +} + +const UiVersion = ({ appName }: UiVersionProps) => { + return