Fix Docker build versioning (#20077)

* Centralise version scripts and fix Docker version
* Refactor generation of a git-hash-based version into get-version-from-git
* Refactor normalization of versions (stripping leading v) into normalize-version.sh
* Call get-version-from-git from ci_package.sh, call normalize-version from package.sh
* Refactor docker-write-version.sh into docker-package.sh, which both writes the
  version file and invokes yarn build passing VERSION
* Normalize the version received from the server
This commit is contained in:
James Salter 2021-12-07 15:11:01 +11:00 committed by GitHub
parent b3c5bb899b
commit b0abbfacd4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 36 additions and 36 deletions

View file

@ -107,7 +107,7 @@ export default class WebPlatform extends VectorBasePlatform {
// presence of intermediate caching proxies), but still: we're trying
// to tell the user that there is a new version.
return new Promise(function(resolve, reject) {
return new Promise((resolve, reject) => {
request(
{
method: "GET",
@ -121,27 +121,24 @@ export default class WebPlatform extends VectorBasePlatform {
return;
}
const ver = body.trim();
resolve(ver);
resolve(this.getNormalizedAppVersion(body.trim()));
},
);
});
}
getNormalizedAppVersion(): string {
let ver = process.env.VERSION;
getNormalizedAppVersion(version: string): string {
// if version looks like semver with leading v, strip it
// (matches scripts/package.sh)
// (matches scripts/normalize-version.sh)
const semVerRegex = new RegExp("^v[0-9]+.[0-9]+.[0-9]+(-.+)?$");
if (semVerRegex.test(process.env.VERSION)) {
ver = process.env.VERSION.substr(1);
if (semVerRegex.test(version)) {
return version.substr(1);
}
return ver;
return version;
}
getAppVersion(): Promise<string> {
return Promise.resolve(this.getNormalizedAppVersion());
return Promise.resolve(this.getNormalizedAppVersion(process.env.VERSION));
}
startUpdater() {
@ -155,7 +152,7 @@ export default class WebPlatform extends VectorBasePlatform {
pollForUpdate = () => {
return this.getMostRecentVersion().then((mostRecentVersion) => {
const currentVersion = this.getNormalizedAppVersion();
const currentVersion = this.getNormalizedAppVersion(process.env.VERSION);
if (currentVersion !== mostRecentVersion) {
if (this.shouldShowUpdate(mostRecentVersion)) {