@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
74 lines • 6.68 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchPreviousVersion = fetchPreviousVersion;
const rest_1 = require("@octokit/rest");
const semver = __importStar(require("semver"));
async function fetchPreviousVersion(token, options) {
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 = release.name?.replace('v', '');
if (!version) {
continue;
}
// Any old version is fine
if (!options?.majorVersion && !options?.priorTo) {
return version;
}
if (options?.majorVersion && `${semver.major(version)}` === options.majorVersion) {
return version;
}
if (options?.priorTo && semver.lt(version, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2l0aHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0Esb0RBMkNDO0FBOUNELHdDQUF3QztBQUN4QywrQ0FBaUM7QUFFMUIsS0FBSyxVQUFVLG9CQUFvQixDQUFDLEtBQWEsRUFBRSxPQUd6RDtJQUNDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUMvQyxLQUFLLEVBQUUsS0FBSztRQUNaLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQztJQUVILGlFQUFpRTtJQUNqRSxxRUFBcUU7SUFDckUsOEJBQThCO0lBQzlCLElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixTQUFTO1FBQ1gsQ0FBQztRQUVELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNoRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsWUFBWSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqRixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEgsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsR0FBRyxPQUFPLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdEIsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9jdG9raXQgfSBmcm9tICdAb2N0b2tpdC9yZXN0JztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hQcmV2aW91c1ZlcnNpb24odG9rZW46IHN0cmluZywgb3B0aW9ucz86IHtcbiAgcHJpb3JUbz86IHN0cmluZztcbiAgbWFqb3JWZXJzaW9uPzogc3RyaW5nO1xufSkge1xuICBjb25zdCBnaXRodWIgPSBuZXcgT2N0b2tpdCh7IGF1dGg6IHRva2VuIH0pO1xuICBjb25zdCByZWxlYXNlcyA9IGF3YWl0IGdpdGh1Yi5yZXBvcy5saXN0UmVsZWFzZXMoe1xuICAgIG93bmVyOiAnYXdzJyxcbiAgICByZXBvOiAnYXdzLWNkaycsXG4gIH0pO1xuXG4gIC8vIHRoaXMgcmV0dXJucyBhIGxpc3QgaW4gZGVzY2VuZGluZyBvcmRlciwgbmV3ZXN0IHJlbGVhc2VzIGZpcnN0XG4gIC8vIG9wdHMgZm9yIHNhbWUgbWFqb3IgdmVyc2lvbiB3aGVyZSBwb3NzaWJsZSwgZmFsbGluZyBiYWNrIG90aGVyd2lzZVxuICAvLyB0byBwcmV2aW91cyBtYWpvciB2ZXJzaW9ucy5cbiAgbGV0IHByZXZpb3VzTVZSZWxlYXNlID0gdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IHJlbGVhc2Ugb2YgcmVsZWFzZXMuZGF0YSkge1xuICAgIGNvbnN0IHZlcnNpb24gPSByZWxlYXNlLm5hbWU/LnJlcGxhY2UoJ3YnLCAnJyk7XG4gICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBBbnkgb2xkIHZlcnNpb24gaXMgZmluZVxuICAgIGlmICghb3B0aW9ucz8ubWFqb3JWZXJzaW9uICYmICFvcHRpb25zPy5wcmlvclRvKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8ubWFqb3JWZXJzaW9uICYmIGAke3NlbXZlci5tYWpvcih2ZXJzaW9uKX1gID09PSBvcHRpb25zLm1ham9yVmVyc2lvbikge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnByaW9yVG8gJiYgc2VtdmVyLmx0KHZlcnNpb24sIG9wdGlvbnM/LnByaW9yVG8pICYmIHNlbXZlci5tYWpvcih2ZXJzaW9uKSA9PT0gc2VtdmVyLm1ham9yKG9wdGlvbnMucHJpb3JUbykpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSByZXR1cm4gdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gdGhhdCBkaWRuJ3QgbWF0Y2ggYW55XG4gICAgaWYgKCFwcmV2aW91c01WUmVsZWFzZSkge1xuICAgICAgcHJldmlvdXNNVlJlbGVhc2UgPSB2ZXJzaW9uO1xuICAgIH1cbiAgfVxuICBpZiAocHJldmlvdXNNVlJlbGVhc2UpIHtcbiAgICByZXR1cm4gcHJldmlvdXNNVlJlbGVhc2U7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBmaW5kIHByZXZpb3VzIHZlcnNpb24gZ2l2ZW4gJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX1gKTtcbn1cbiJdfQ==