Make the version file part of webpack output (#28461)
* Make the version file part of webpack output Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix outputFile path for Windows compat Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
e3f8a7b13d
commit
d36cfc37e2
6 changed files with 75 additions and 12 deletions
1
.github/workflows/end-to-end-tests.yaml
vendored
1
.github/workflows/end-to-end-tests.yaml
vendored
|
@ -69,7 +69,6 @@ jobs:
|
||||||
VERSION: "${{ steps.layered_build.outputs.VERSION }}"
|
VERSION: "${{ steps.layered_build.outputs.VERSION }}"
|
||||||
run: |
|
run: |
|
||||||
yarn build
|
yarn build
|
||||||
echo $VERSION > webapp/version
|
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|
|
@ -286,6 +286,7 @@
|
||||||
"webpack-bundle-analyzer": "^4.8.0",
|
"webpack-bundle-analyzer": "^4.8.0",
|
||||||
"webpack-cli": "^5.0.0",
|
"webpack-cli": "^5.0.0",
|
||||||
"webpack-dev-server": "^5.0.0",
|
"webpack-dev-server": "^5.0.0",
|
||||||
|
"webpack-version-file-plugin": "^0.5.0",
|
||||||
"yaml": "^2.3.3"
|
"yaml": "^2.3.3"
|
||||||
},
|
},
|
||||||
"@casualbot/jest-sonar-reporter": {
|
"@casualbot/jest-sonar-reporter": {
|
||||||
|
|
|
@ -17,4 +17,3 @@ fi
|
||||||
|
|
||||||
DIST_VERSION=$("$DIR"/normalize-version.sh "$DIST_VERSION")
|
DIST_VERSION=$("$DIR"/normalize-version.sh "$DIST_VERSION")
|
||||||
VERSION=$DIST_VERSION yarn build
|
VERSION=$DIST_VERSION yarn build
|
||||||
echo "$DIST_VERSION" > /src/webapp/version
|
|
||||||
|
|
|
@ -21,8 +21,6 @@ cp -r webapp element-$version
|
||||||
# Just in case you have a local config, remove it before packaging
|
# Just in case you have a local config, remove it before packaging
|
||||||
rm element-$version/config.json || true
|
rm element-$version/config.json || true
|
||||||
|
|
||||||
$(dirname $0)/normalize-version.sh ${version} > element-$version/version
|
|
||||||
|
|
||||||
# GNU/BSD compatibility workaround
|
# GNU/BSD compatibility workaround
|
||||||
tar_perms=(--owner=0 --group=0) && [ "$(uname)" == "Darwin" ] && tar_perms=(--uid=0 --gid=0)
|
tar_perms=(--owner=0 --group=0) && [ "$(uname)" == "Darwin" ] && tar_perms=(--uid=0 --gid=0)
|
||||||
tar "${tar_perms[@]}" -chvzf dist/element-$version.tar.gz element-$version
|
tar "${tar_perms[@]}" -chvzf dist/element-$version.tar.gz element-$version
|
||||||
|
|
|
@ -9,6 +9,7 @@ const TerserPlugin = require("terser-webpack-plugin");
|
||||||
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
|
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
|
||||||
const HtmlWebpackInjectPreload = require("@principalstudio/html-webpack-inject-preload");
|
const HtmlWebpackInjectPreload = require("@principalstudio/html-webpack-inject-preload");
|
||||||
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
||||||
|
const VersionFilePlugin = require("webpack-version-file-plugin");
|
||||||
|
|
||||||
// Environment variables
|
// Environment variables
|
||||||
// RIOT_OG_IMAGE_URL: specifies the URL to the image which should be used for the opengraph logo.
|
// RIOT_OG_IMAGE_URL: specifies the URL to the image which should be used for the opengraph logo.
|
||||||
|
@ -19,11 +20,6 @@ dotenv.config();
|
||||||
let ogImageUrl = process.env.RIOT_OG_IMAGE_URL;
|
let ogImageUrl = process.env.RIOT_OG_IMAGE_URL;
|
||||||
if (!ogImageUrl) ogImageUrl = "https://app.element.io/themes/element/img/logos/opengraph.png";
|
if (!ogImageUrl) ogImageUrl = "https://app.element.io/themes/element/img/logos/opengraph.png";
|
||||||
|
|
||||||
if (!process.env.VERSION) {
|
|
||||||
console.warn("Unset VERSION variable - this may affect build output");
|
|
||||||
process.env.VERSION = "!!UNSET!!";
|
|
||||||
}
|
|
||||||
|
|
||||||
const cssThemes = {
|
const cssThemes = {
|
||||||
// CSS themes
|
// CSS themes
|
||||||
"theme-legacy-light": "./res/themes/legacy-light/css/legacy-light.pcss",
|
"theme-legacy-light": "./res/themes/legacy-light/css/legacy-light.pcss",
|
||||||
|
@ -97,6 +93,14 @@ module.exports = (env, argv) => {
|
||||||
const devMode = nodeEnv !== "production";
|
const devMode = nodeEnv !== "production";
|
||||||
const enableMinification = !devMode && !process.env.CI_PACKAGE;
|
const enableMinification = !devMode && !process.env.CI_PACKAGE;
|
||||||
|
|
||||||
|
let VERSION = process.env.VERSION;
|
||||||
|
if (!VERSION) {
|
||||||
|
VERSION = require("./package.json").version;
|
||||||
|
if (devMode) {
|
||||||
|
VERSION += "-dev";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const development = {};
|
const development = {};
|
||||||
if (devMode) {
|
if (devMode) {
|
||||||
// Embedded source maps for dev builds, can't use eval-source-map due to CSP
|
// Embedded source maps for dev builds, can't use eval-source-map due to CSP
|
||||||
|
@ -651,8 +655,6 @@ module.exports = (env, argv) => {
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
new webpack.EnvironmentPlugin(["VERSION"]),
|
|
||||||
|
|
||||||
new CopyWebpackPlugin({
|
new CopyWebpackPlugin({
|
||||||
patterns: [
|
patterns: [
|
||||||
"res/apple-app-site-association",
|
"res/apple-app-site-association",
|
||||||
|
@ -677,6 +679,15 @@ module.exports = (env, argv) => {
|
||||||
Buffer: ["buffer", "Buffer"],
|
Buffer: ["buffer", "Buffer"],
|
||||||
process: "process/browser",
|
process: "process/browser",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// We bake the version in so the app knows its version immediately
|
||||||
|
new webpack.DefinePlugin({ "process.env.VERSION": JSON.stringify(VERSION) }),
|
||||||
|
// But we also write it to a file which gets polled for update detection
|
||||||
|
new VersionFilePlugin({
|
||||||
|
outputFile: "version",
|
||||||
|
templateString: "<%= extras.VERSION %>",
|
||||||
|
extras: { VERSION },
|
||||||
|
}),
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
|
|
||||||
output: {
|
output: {
|
||||||
|
|
57
yarn.lock
57
yarn.lock
|
@ -3934,6 +3934,11 @@ astral-regex@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||||
|
|
||||||
|
async@^3.2.3:
|
||||||
|
version "3.2.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
|
||||||
|
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
|
||||||
|
|
||||||
asynckit@^0.4.0:
|
asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
|
@ -4332,7 +4337,7 @@ chalk@^3.0.0:
|
||||||
ansi-styles "^4.1.0"
|
ansi-styles "^4.1.0"
|
||||||
supports-color "^7.1.0"
|
supports-color "^7.1.0"
|
||||||
|
|
||||||
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
|
chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||||
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
||||||
|
@ -5365,6 +5370,13 @@ ee-first@1.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||||
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
|
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
|
||||||
|
|
||||||
|
ejs@^3.1.8:
|
||||||
|
version "3.1.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
|
||||||
|
integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
|
||||||
|
dependencies:
|
||||||
|
jake "^10.8.5"
|
||||||
|
|
||||||
electron-to-chromium@^1.5.41:
|
electron-to-chromium@^1.5.41:
|
||||||
version "1.5.56"
|
version "1.5.56"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.56.tgz#3213f369efc3a41091c3b2c05bc0f406108ac1df"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.56.tgz#3213f369efc3a41091c3b2c05bc0f406108ac1df"
|
||||||
|
@ -6188,6 +6200,13 @@ file@^0.2.2:
|
||||||
resolved "https://registry.yarnpkg.com/file/-/file-0.2.2.tgz#c3dfd8f8cf3535ae455c2b423c2e52635d76b4d3"
|
resolved "https://registry.yarnpkg.com/file/-/file-0.2.2.tgz#c3dfd8f8cf3535ae455c2b423c2e52635d76b4d3"
|
||||||
integrity sha512-gwabMtChzdnpDJdPEpz8Vr/PX0pU85KailuPV71Zw/un5yJVKvzukhB3qf6O3lnTwIe5CxlMYLh3jOK3w5xrLA==
|
integrity sha512-gwabMtChzdnpDJdPEpz8Vr/PX0pU85KailuPV71Zw/un5yJVKvzukhB3qf6O3lnTwIe5CxlMYLh3jOK3w5xrLA==
|
||||||
|
|
||||||
|
filelist@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
|
||||||
|
integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
|
||||||
|
dependencies:
|
||||||
|
minimatch "^5.0.1"
|
||||||
|
|
||||||
filesize@10.1.6:
|
filesize@10.1.6:
|
||||||
version "10.1.6"
|
version "10.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.6.tgz#31194da825ac58689c0bce3948f33ce83aabd361"
|
resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.6.tgz#31194da825ac58689c0bce3948f33ce83aabd361"
|
||||||
|
@ -6342,6 +6361,11 @@ fs.realpath@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
|
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
|
||||||
|
|
||||||
|
fs@latest:
|
||||||
|
version "0.0.1-security"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4"
|
||||||
|
integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==
|
||||||
|
|
||||||
fsevents@2.3.2:
|
fsevents@2.3.2:
|
||||||
version "2.3.2"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||||
|
@ -7362,6 +7386,16 @@ jackspeak@^4.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@isaacs/cliui" "^8.0.2"
|
"@isaacs/cliui" "^8.0.2"
|
||||||
|
|
||||||
|
jake@^10.8.5:
|
||||||
|
version "10.9.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f"
|
||||||
|
integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
|
||||||
|
dependencies:
|
||||||
|
async "^3.2.3"
|
||||||
|
chalk "^4.0.2"
|
||||||
|
filelist "^1.0.4"
|
||||||
|
minimatch "^3.1.2"
|
||||||
|
|
||||||
jest-canvas-mock@^2.5.2:
|
jest-canvas-mock@^2.5.2:
|
||||||
version "2.5.2"
|
version "2.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6"
|
resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6"
|
||||||
|
@ -8519,6 +8553,13 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
|
minimatch@^5.0.1:
|
||||||
|
version "5.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
|
||||||
|
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^2.0.1"
|
||||||
|
|
||||||
minimatch@^8.0.2:
|
minimatch@^8.0.2:
|
||||||
version "8.0.4"
|
version "8.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229"
|
||||||
|
@ -11566,6 +11607,11 @@ unbox-primitive@^1.0.2:
|
||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
|
underscore@^1.13.6:
|
||||||
|
version "1.13.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10"
|
||||||
|
integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==
|
||||||
|
|
||||||
undici-types@~5.26.4:
|
undici-types@~5.26.4:
|
||||||
version "5.26.5"
|
version "5.26.5"
|
||||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||||
|
@ -11942,6 +11988,15 @@ webpack-sources@^3.2.3:
|
||||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||||
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||||
|
|
||||||
|
webpack-version-file-plugin@^0.5.0:
|
||||||
|
version "0.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/webpack-version-file-plugin/-/webpack-version-file-plugin-0.5.0.tgz#1711baafc06da373f3bb95de86cad831e00217e1"
|
||||||
|
integrity sha512-Ef5gGkD3OPtXU794XNt6JNzIv1dYmTqN3SfY25qRNg6/auOXGF4XBpPnisO9mJTUbIgBFcSEiV74uXJlrL0xfg==
|
||||||
|
dependencies:
|
||||||
|
ejs "^3.1.8"
|
||||||
|
fs latest
|
||||||
|
underscore "^1.13.6"
|
||||||
|
|
||||||
webpack-virtual-modules@^0.5.0:
|
webpack-virtual-modules@^0.5.0:
|
||||||
version "0.5.0"
|
version "0.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
|
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
|
||||||
|
|
Loading…
Reference in a new issue