From 284aacccf07b4ee8ed193c2f80aa1cc4da76cd97 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 30 Mar 2021 14:02:26 -0500 Subject: [PATCH] Try to get version from GitLab CI first --- app/soapbox/utils/code.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/app/soapbox/utils/code.js b/app/soapbox/utils/code.js index c0d927331..b9d33ccec 100644 --- a/app/soapbox/utils/code.js +++ b/app/soapbox/utils/code.js @@ -3,20 +3,32 @@ const pkg = require('../../../package.json'); const { execSync } = require('child_process'); const shortRepoName = url => new URL(url).pathname.substring(1); +const trimHash = hash => hash.substring(0, 7); const version = pkg => { + // Try to discern from GitLab CI first + const { CI_COMMIT_TAG, CI_COMMIT_REF_NAME, CI_COMMIT_SHA } = process.env; + + if (CI_COMMIT_TAG === `v${pkg.version}` || CI_COMMIT_REF_NAME === 'stable') { + return pkg.version; + } + + if (typeof CI_COMMIT_SHA === 'string') { + return `${pkg.version}-${trimHash(CI_COMMIT_SHA)}`; + } + + // Fall back to git directly try { const head = String(execSync('git rev-parse HEAD')); const tag = String(execSync(`git rev-parse v${pkg.version}`)); - if (head !== tag) { - return `${pkg.version}-${head.substring(0, 7)}`; - } else { - return pkg.version; - } + if (head !== tag) return `${pkg.version}-${trimHash(head)}`; } catch (e) { - return pkg.version; + // Continue } + + // Fall back to version in package.json + return pkg.version; }; module.exports = {