mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-24 03:55:49 +08:00
chore(release): calculate the cdnVersion on every build
The CDN version of angular is now calculated on every build, by looking at the tags in angular/angular.js, sorting them by semver and checking against ajax.googleapis.com which one is available.
This commit is contained in:
@@ -4,7 +4,7 @@ var shell = require('shelljs');
|
||||
var semver = require('semver');
|
||||
var _ = require('lodash');
|
||||
|
||||
var currentPackage, previousVersions;
|
||||
var currentPackage, previousVersions, cdnVersion;
|
||||
|
||||
|
||||
/**
|
||||
@@ -131,6 +131,29 @@ var getPreviousVersions = function() {
|
||||
}
|
||||
};
|
||||
|
||||
var getCdnVersion = function() {
|
||||
return _(previousVersions)
|
||||
.filter(function(tag) {
|
||||
return semver.satisfies(tag, currentPackage.branchVersion);
|
||||
})
|
||||
.reverse()
|
||||
.reduce(function(cdnVersion, version) {
|
||||
if (!cdnVersion) {
|
||||
// Note: need to use shell.exec and curl here
|
||||
// as version-infos returns its result synchronously...
|
||||
var cdnResult = shell.exec('curl http://ajax.googleapis.com/ajax/libs/angularjs/'+version+'/angular.min.js '+
|
||||
'--head --write-out "%{http_code}" -o /dev/null -silent',
|
||||
{silent: true});
|
||||
if ( cdnResult.code === 0 ) {
|
||||
var statusCode = cdnResult.output.trim();
|
||||
if (statusCode === '200') {
|
||||
cdnVersion = version;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cdnVersion;
|
||||
}, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the unstable snapshot version
|
||||
@@ -179,4 +202,5 @@ var getSnapshotVersion = function() {
|
||||
exports.currentPackage = currentPackage = getPackage();
|
||||
exports.gitRepoInfo = gitRepoInfo = getGitRepoInfo();
|
||||
exports.previousVersions = previousVersions = getPreviousVersions();
|
||||
exports.cdnVersion = cdnVersion = getCdnVersion();
|
||||
exports.currentVersion = getTaggedVersion() || getSnapshotVersion();
|
||||
|
||||
Reference in New Issue
Block a user