43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
const { gitDescribeSync } = require('git-describe');
|
|
const { version } = require('./package.json');
|
|
const { resolve, relative } = require('path');
|
|
const { writeFileSync } = require('fs-extra');
|
|
|
|
function getGitInfo() {
|
|
try {
|
|
return gitDescribeSync({
|
|
dirtyMark: false,
|
|
dirtySemver: false
|
|
});
|
|
} catch (err) {
|
|
const commit = process.env.BUILD_SOURCEVERSION || process.env.GIT_COMMIT || 'unknown';
|
|
const ref = process.env.BUILD_SOURCEBRANCHNAME || process.env.GIT_BRANCH || 'unknown';
|
|
const build = process.env.BUILD_BUILDNUMBER || process.env.BUILD_NUMBER || 'local';
|
|
|
|
return {
|
|
raw: `${version}-${build}`,
|
|
tag: version,
|
|
distance: 0,
|
|
hash: commit,
|
|
semverString: version,
|
|
suffix: build,
|
|
ref
|
|
};
|
|
}
|
|
}
|
|
|
|
const gitInfo = getGitInfo();
|
|
|
|
gitInfo.version = version;
|
|
|
|
const file = resolve(__dirname, '.', 'src', 'environments', 'version.ts');
|
|
writeFileSync(file,
|
|
`// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
/* tslint:disable */
|
|
export const VERSION = ${JSON.stringify(gitInfo, null, 4)};
|
|
export const BUILD_STAMP = ${JSON.stringify(new Date())};
|
|
/* tslint:enable */
|
|
`, { encoding: 'utf-8' });
|
|
|
|
console.log(`Wrote version info ${gitInfo.raw} to ${relative(resolve(__dirname, '..'), file)}`);
|