@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
42 lines • 5.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchPreviousVersion = fetchPreviousVersion;
const rest_1 = require("@octokit/rest");
const semver = require("semver");
async function fetchPreviousVersion(token, options) {
var _a;
const github = new rest_1.Octokit({ auth: token });
const releases = await github.repos.listReleases({
owner: 'aws',
repo: 'aws-cdk',
});
// this returns a list in descending order, newest releases first
// opts for same major version where possible, falling back otherwise
// to previous major versions.
let previousMVRelease = undefined;
for (const release of releases.data) {
const version = (_a = release.name) === null || _a === void 0 ? void 0 : _a.replace('v', '');
if (!version) {
continue;
}
// Any old version is fine
if (!(options === null || options === void 0 ? void 0 : options.majorVersion) && !(options === null || options === void 0 ? void 0 : options.priorTo)) {
return version;
}
if ((options === null || options === void 0 ? void 0 : options.majorVersion) && `${semver.major(version)}` === options.majorVersion) {
return version;
}
if ((options === null || options === void 0 ? void 0 : options.priorTo) && semver.lt(version, options === null || options === void 0 ? void 0 : options.priorTo) && semver.major(version) === semver.major(options.priorTo)) {
return version;
}
// Otherwise return the most recent version that didn't match any
if (!previousMVRelease) {
previousMVRelease = version;
}
}
if (previousMVRelease) {
return previousMVRelease;
}
throw new Error(`Unable to find previous version given ${JSON.stringify(options)}`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2l0aHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esb0RBdUNDO0FBMUNELHdDQUF3QztBQUN4QyxpQ0FBaUM7QUFFMUIsS0FBSyxVQUFVLG9CQUFvQixDQUFDLEtBQWEsRUFBRSxPQUd6RDs7SUFDQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDL0MsS0FBSyxFQUFFLEtBQUs7UUFDWixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUM7SUFFSCxpRUFBaUU7SUFDakUscUVBQXFFO0lBQ3JFLDhCQUE4QjtJQUM5QixJQUFJLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztJQUNsQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFBLE9BQU8sQ0FBQyxJQUFJLDBDQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQUMsU0FBUztRQUFDLENBQUM7UUFFM0IsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLENBQUEsSUFBSSxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sQ0FBQSxFQUFFLENBQUM7WUFDaEQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxLQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqRixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLEtBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4SCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZCLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUFDLE9BQU8saUJBQWlCLENBQUM7SUFBQyxDQUFDO0lBRXBELE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPY3Rva2l0IH0gZnJvbSAnQG9jdG9raXQvcmVzdCc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUHJldmlvdXNWZXJzaW9uKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM/OiB7XG4gIHByaW9yVG8/OiBzdHJpbmc7XG4gIG1ham9yVmVyc2lvbj86IHN0cmluZztcbn0pIHtcbiAgY29uc3QgZ2l0aHViID0gbmV3IE9jdG9raXQoeyBhdXRoOiB0b2tlbiB9KTtcbiAgY29uc3QgcmVsZWFzZXMgPSBhd2FpdCBnaXRodWIucmVwb3MubGlzdFJlbGVhc2VzKHtcbiAgICBvd25lcjogJ2F3cycsXG4gICAgcmVwbzogJ2F3cy1jZGsnLFxuICB9KTtcblxuICAvLyB0aGlzIHJldHVybnMgYSBsaXN0IGluIGRlc2NlbmRpbmcgb3JkZXIsIG5ld2VzdCByZWxlYXNlcyBmaXJzdFxuICAvLyBvcHRzIGZvciBzYW1lIG1ham9yIHZlcnNpb24gd2hlcmUgcG9zc2libGUsIGZhbGxpbmcgYmFjayBvdGhlcndpc2VcbiAgLy8gdG8gcHJldmlvdXMgbWFqb3IgdmVyc2lvbnMuXG4gIGxldCBwcmV2aW91c01WUmVsZWFzZSA9IHVuZGVmaW5lZDtcbiAgZm9yIChjb25zdCByZWxlYXNlIG9mIHJlbGVhc2VzLmRhdGEpIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gcmVsZWFzZS5uYW1lPy5yZXBsYWNlKCd2JywgJycpO1xuICAgIGlmICghdmVyc2lvbikgeyBjb250aW51ZTsgfVxuXG4gICAgLy8gQW55IG9sZCB2ZXJzaW9uIGlzIGZpbmVcbiAgICBpZiAoIW9wdGlvbnM/Lm1ham9yVmVyc2lvbiAmJiAhb3B0aW9ucz8ucHJpb3JUbykge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/Lm1ham9yVmVyc2lvbiAmJiBgJHtzZW12ZXIubWFqb3IodmVyc2lvbil9YCA9PT0gb3B0aW9ucy5tYWpvclZlcnNpb24pIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy5wcmlvclRvICYmIHNlbXZlci5sdCh2ZXJzaW9uLCBvcHRpb25zPy5wcmlvclRvKSAmJiBzZW12ZXIubWFqb3IodmVyc2lvbikgPT09IHNlbXZlci5tYWpvcihvcHRpb25zLnByaW9yVG8pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgcmV0dXJuIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIHRoYXQgZGlkbid0IG1hdGNoIGFueVxuICAgIGlmICghcHJldmlvdXNNVlJlbGVhc2UpIHtcbiAgICAgIHByZXZpb3VzTVZSZWxlYXNlID0gdmVyc2lvbjtcbiAgICB9XG4gIH1cbiAgaWYgKHByZXZpb3VzTVZSZWxlYXNlKSB7IHJldHVybiBwcmV2aW91c01WUmVsZWFzZTsgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgcHJldmlvdXMgdmVyc2lvbiBnaXZlbiAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpfWApO1xufVxuIl19