From 31d43860ac3f8cb4388c6f2e86e3bba770a813db Mon Sep 17 00:00:00 2001 From: Daniel Lockyer Date: Fri, 3 Apr 2020 16:16:26 +0100 Subject: [PATCH] Updated release script no issue --- config.example.json | 1 - gulpfile.js | 114 ++++++++++++++++++++++---------------------- 2 files changed, 57 insertions(+), 58 deletions(-) diff --git a/config.example.json b/config.example.json index 7a850f1..d79d2e5 100644 --- a/config.example.json +++ b/config.example.json @@ -1,6 +1,5 @@ { "github": { - "username": "", "token": "" } } diff --git a/gulpfile.js b/gulpfile.js index 6b4171e..f677f15 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -22,7 +22,6 @@ const easyimport = require('postcss-easy-import'); const REPO = 'TryGhost/Casper'; const REPO_READONLY = 'TryGhost/Casper'; -const USER_AGENT = 'Casper'; const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md'); function serve(done) { @@ -94,25 +93,6 @@ const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs); const watcher = parallel(cssWatcher, hbsWatcher); const build = series(css, js); -const previousRelease = () => { - return releaseUtils - .releases - .get({ - userAgent: USER_AGENT, - uri: `https://api.github.com/repos/${REPO_READONLY}/releases` - }) - .then(response => { - if (!response || !response.length) { - console.log('No releases found. Skipping...'); - return; - } - - let prevVersion = response[0].tag_name || response[0].name; - console.log(`Previous version ${prevVersion}`); - return prevVersion; - }); -}; - exports.build = build; exports.zip = series(build, zipper); exports.default = series(build, serve, watcher); @@ -137,52 +117,72 @@ exports.release = () => { config = null; } - if (!config || !config.github || !config.github.username || !config.github.token) { + if (!config || !config.github || !config.github.token) { console.log('Please copy config.example.json and configure Github token.'); return; } - inquirer.prompt([{ + let compatibleWithGhost; + + return inquirer.prompt([{ type: 'input', name: 'compatibleWithGhost', message: 'Which version of Ghost is it compatible with?', default: '3.0.0' - }]).then(result => { - let compatibleWithGhost = result.compatibleWithGhost; + }]) + .then(result => { + compatibleWithGhost = result.compatibleWithGhost; + return Promise.resolve(); + }) + .then(() => releaseUtils.releases.get({ + userAgent: 'Casper', + uri: `https://api.github.com/repos/${REPO_READONLY}/releases` + })) + .then((response) => { + if (!response || !response.length) { + console.log('No releases found. Skipping...'); + return; + } - previousRelease().then(previousVersion => { - const changelog = new releaseUtils.Changelog({ - changelogPath: CHANGELOG_PATH, - folder: path.join(process.cwd(), '.') - }); - - changelog - .write({ - githubRepoPath: `https://github.com/${REPO}`, - lastVersion: previousVersion - }) - .sort() - .clean(); - - releaseUtils - .releases - .create({ - draft: true, - preRelease: false, - tagName: newVersion, - releaseName: newVersion, - userAgent: USER_AGENT, - uri: `https://api.github.com/repos/${REPO}/releases`, - github: { - username: config.github.username, - token: config.github.token - }, - content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`], - changelogPath: CHANGELOG_PATH - }) - .then(response => { - console.log(`\nRelease draft generated: ${response.releaseUrl}\n`); - }); + let previousVersion = response[0].tag_name || response[0].name; + console.log(`Previous version: ${previousVersion}`); + return Promise.resolve(previousVersion); + }) + .then((previousVersion) => { + const changelog = new releaseUtils.Changelog({ + changelogPath: CHANGELOG_PATH, + folder: path.join(process.cwd(), '.') }); + + changelog + .write({ + githubRepoPath: `https://github.com/${REPO}`, + lastVersion: previousVersion + }) + .sort() + .clean(); + + return Promise.resolve(); + }) + .then(() => releaseUtils.releases.create({ + draft: true, + preRelease: false, + tagName: newVersion, + releaseName: newVersion + '+banana', + userAgent: 'Casper', + uri: `https://api.github.com/repos/${REPO}/releases`, + github: { + token: config.github.token + }, + content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`], + changelogPath: CHANGELOG_PATH + })) + .then((response) => { + console.log(`\nRelease draft generated: ${response.releaseUrl}\n`); + return Promise.resolve(); + }) + .catch((err) => { + console.error(err); + process.exit(1); }); };