chore(doc-gen): fix versionInfo population
This commit is contained in:
parent
c34cb01404
commit
8112b0baa7
|
@ -1,3 +1,3 @@
|
||||||
{% macro githubViewLink(doc) -%}
|
{% macro githubViewLink(doc) -%}
|
||||||
<a href="https://github.com/{$ versionInfo.gitRepoInfo.owner $}/{$ versionInfo.gitRepoInfo.repo $}/tree/{$ versionInfo.currentVersion.isSnapshot and 'master' or versionInfo.currentVersion.raw $}/modules/{$ doc.fileInfo.relativePath $}#L{$ doc.location.start.line+1 $}-L{$ doc.location.end.line+1 $}">
|
<a href="https://github.com/{$ versionInfo.gitRepoInfo.owner $}/{$ versionInfo.gitRepoInfo.repo $}/tree/{$ versionInfo.currentVersion.isSnapshot and versionInfo.currentVersion.SHA or versionInfo.currentVersion.raw $}/modules/{$ doc.fileInfo.relativePath $}#L{$ doc.location.start.line+1 $}-L{$ doc.location.end.line+1 $}">
|
||||||
{%- endmacro -%}
|
{%- endmacro -%}
|
||||||
|
|
|
@ -49,7 +49,12 @@ var getGitRepoInfo = function() {
|
||||||
*/
|
*/
|
||||||
var getCodeName = function(tagName) {
|
var getCodeName = function(tagName) {
|
||||||
var gitCatOutput = shell.exec('git cat-file -p ' + tagName, {silent:true}).output;
|
var gitCatOutput = shell.exec('git cat-file -p ' + tagName, {silent:true}).output;
|
||||||
var tagMessage = gitCatOutput.match(/^.*codename.*$/mg)[0];
|
var tagMatch = gitCatOutput.match(/^.*codename.*$/mg);
|
||||||
|
// The angular repo doesn't have annotated tags.
|
||||||
|
if (!tagMatch) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
var tagMessage = tagMatch[0];
|
||||||
var codeName = tagMessage && tagMessage.match(/codename\((.*)\)/)[1];
|
var codeName = tagMessage && tagMessage.match(/codename\((.*)\)/)[1];
|
||||||
if (!codeName) {
|
if (!codeName) {
|
||||||
throw new Error("Could not extract release code name. The message of tag " + tagName +
|
throw new Error("Could not extract release code name. The message of tag " + tagName +
|
||||||
|
@ -58,14 +63,21 @@ var getCodeName = function(tagName) {
|
||||||
return codeName;
|
return codeName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grab the commitSHA for the current commit.
|
||||||
|
* @return {String} The commit HASH
|
||||||
|
*/
|
||||||
|
function getCommitSHA() {
|
||||||
|
var hash = shell.exec('git rev-parse --short HEAD', {silent: true}).output.replace('\n', '');
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compute a build segment for the version, from the Jenkins build number and current commit SHA
|
* Compute a build segment for the version, from the Jenkins build number and current commit SHA
|
||||||
* @return {String} The build segment of the version
|
* @return {String} The build segment of the version
|
||||||
*/
|
*/
|
||||||
function getBuild() {
|
function getBuild() {
|
||||||
var hash = shell.exec('git rev-parse --short HEAD', {silent: true}).output.replace('\n', '');
|
return 'sha.' + getCommitSHA();
|
||||||
return 'sha.' + hash;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,7 +86,8 @@ function getBuild() {
|
||||||
* @return {SemVer} The version or null
|
* @return {SemVer} The version or null
|
||||||
*/
|
*/
|
||||||
var getTaggedVersion = function() {
|
var getTaggedVersion = function() {
|
||||||
var gitTagResult = shell.exec('git describe --exact-match', {silent:true});
|
// The angular repo doesn't have annotated tags.
|
||||||
|
var gitTagResult = shell.exec('git describe --tags --exact-match', {silent:true});
|
||||||
|
|
||||||
if (gitTagResult.code === 0) {
|
if (gitTagResult.code === 0) {
|
||||||
var tag = gitTagResult.output.trim();
|
var tag = gitTagResult.output.trim();
|
||||||
|
@ -84,6 +97,7 @@ var getTaggedVersion = function() {
|
||||||
version.codeName = getCodeName(tag);
|
version.codeName = getCodeName(tag);
|
||||||
version.full = version.version;
|
version.full = version.version;
|
||||||
version.branch = 'v' + currentPackage.branchPattern.replace('*', 'x');
|
version.branch = 'v' + currentPackage.branchPattern.replace('*', 'x');
|
||||||
|
version.SHA = getCommitSHA();
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,7 +117,7 @@ var getPreviousVersions = function() {
|
||||||
var tagResults = shell.exec('git ls-remote --tags ' + repo_url,
|
var tagResults = shell.exec('git ls-remote --tags ' + repo_url,
|
||||||
{silent: true});
|
{silent: true});
|
||||||
if (tagResults.code === 0) {
|
if (tagResults.code === 0) {
|
||||||
return _(tagResults.output.match(/v[0-9].*[0-9]$/mg))
|
return _(tagResults.output.match(/[0-9].*[0-9]$/mg))
|
||||||
.map(function(tag) {
|
.map(function(tag) {
|
||||||
var version = semver.parse(tag);
|
var version = semver.parse(tag);
|
||||||
return version;
|
return version;
|
||||||
|
@ -165,6 +179,7 @@ var getSnapshotVersion = function() {
|
||||||
}
|
}
|
||||||
version.prerelease = jenkinsBuild ? ['build', jenkinsBuild] : ['local'];
|
version.prerelease = jenkinsBuild ? ['build', jenkinsBuild] : ['local'];
|
||||||
version.build = getBuild();
|
version.build = getBuild();
|
||||||
|
version.SHA = getCommitSHA();
|
||||||
version.codeName = 'snapshot';
|
version.codeName = 'snapshot';
|
||||||
version.isSnapshot = true;
|
version.isSnapshot = true;
|
||||||
version.format();
|
version.format();
|
||||||
|
|
Loading…
Reference in New Issue