UNPKG

aws-delivlib

Version:

A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.

106 lines 9.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const changelog_parser_1 = __importDefault(require("changelog-parser")); const octokit_1 = require("octokit"); if (!process.env.GITHUB_TOKEN) { throw new Error('GITHUB_TOKEN is required'); } if (!process.env.GITHUB_REPO) { throw new Error('GITHUB_REPO is required'); } if (!process.env.GITHUB_OWNER) { throw new Error('GITHUB_OWNER is required'); } const build_manifest = process.env.BUILD_MANIFEST || './build.json'; const changelog_file = process.env.CHANGELOG || './CHANGELOG.md'; const release_notes_file = process.env.RELEASE_NOTES || './RELEASE_NOTES.md'; const client = new octokit_1.Octokit({ auth: process.env.GITHUB_TOKEN }); const owner = process.env.GITHUB_OWNER; const repo = process.env.GITHUB_REPO; async function read_release_notes() { if (!(0, fs_1.existsSync)(release_notes_file)) { return undefined; } return fs_1.promises.readFile(release_notes_file, { encoding: 'utf8' }); } async function read_changelog(version) { if (!(0, fs_1.existsSync)(changelog_file)) { return undefined; } const changelog = await (0, changelog_parser_1.default)(changelog_file); const entry = (changelog.versions || []).find((item) => item.version === version); if (!entry) { throw new Error(`No changelog entry found for version ${version} in ${changelog_file}`); } return entry.body; } async function main() { var _a; const manifest = JSON.parse(await fs_1.promises.readFile(path_1.default.resolve(process.cwd(), build_manifest), 'utf-8')); const tag_name = `v${manifest.version}`; const commit = manifest.commit || undefined; console.log(`Checking if release ${tag_name} already exists...`); let release = (_a = (await client.rest.repos.getReleaseByTag({ owner, repo, tag: tag_name, }).catch((cause) => { if (cause.status === 404) { return Promise.resolve(undefined); } else { return Promise.reject(cause); } }))) === null || _a === void 0 ? void 0 : _a.data; if (release != null) { console.warn(`️⚠️ Release '${tag_name}' already exists. Release notes will not be updated.`); } else { console.log('Reading release notes...'); let release_notes = await read_release_notes(); if (!release_notes) { console.log('No release notes found... Reading changelog...'); release_notes = await read_changelog(manifest.version); } release = (await client.rest.repos.createRelease({ owner, repo, tag_name, name: tag_name, target_commitish: commit, body: release_notes, })).data; } console.log('Uploading assets...'); for (const assetPath of process.argv.slice(2)) { const assetName = path_1.default.basename(assetPath); if (release.assets.some((asset) => asset.name === assetName)) { console.warn(`⚠️ Release '${tag_name}' already has an asset named '${assetName}'. Leaving it as-is.`); continue; } console.log(`Uploading asset '${assetName}' from ${assetPath}`); await client.rest.repos.uploadReleaseAsset({ owner, repo, release_id: release.id, name: assetName, // Note: Cheating here to send the data in streamng mode. // When doing so, we need to specify the content-length header. // See: https://github.com/octokit/octokit.js/discussions/2087 data: (0, fs_1.createReadStream)(assetPath), headers: { 'content-type': 'application/octet-stream', 'content-length': (await fs_1.promises.stat(assetPath)).size, }, }); } console.log('✅ done'); } main().catch(e => { console.error('❌', e); process.exit(1); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlbGVhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjcmVhdGUtcmVsZWFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUFrRTtBQUNsRSxnREFBd0I7QUFDeEIsd0VBQThDO0FBQzlDLHFDQUFrQztBQUVsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUU7SUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Q0FBRTtBQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUU7SUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Q0FBRTtBQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUU7SUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Q0FBRTtBQUUvRSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUM7QUFDcEUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksZ0JBQWdCLENBQUM7QUFDakUsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxvQkFBb0IsQ0FBQztBQUU3RSxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0FBQ3ZDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO0FBRXJDLEtBQUssVUFBVSxrQkFBa0I7SUFDL0IsSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLGtCQUFrQixDQUFDLEVBQUU7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