parent
14f7cc4e31
commit
31d43860ac
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"github": {
|
"github": {
|
||||||
"username": "<username>",
|
|
||||||
"token": "<gh-personal-access-token>"
|
"token": "<gh-personal-access-token>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
70
gulpfile.js
70
gulpfile.js
|
@ -22,7 +22,6 @@ const easyimport = require('postcss-easy-import');
|
||||||
|
|
||||||
const REPO = 'TryGhost/Casper';
|
const REPO = 'TryGhost/Casper';
|
||||||
const REPO_READONLY = 'TryGhost/Casper';
|
const REPO_READONLY = 'TryGhost/Casper';
|
||||||
const USER_AGENT = 'Casper';
|
|
||||||
const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');
|
const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');
|
||||||
|
|
||||||
function serve(done) {
|
function serve(done) {
|
||||||
|
@ -94,25 +93,6 @@ const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs);
|
||||||
const watcher = parallel(cssWatcher, hbsWatcher);
|
const watcher = parallel(cssWatcher, hbsWatcher);
|
||||||
const build = series(css, js);
|
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.build = build;
|
||||||
exports.zip = series(build, zipper);
|
exports.zip = series(build, zipper);
|
||||||
exports.default = series(build, serve, watcher);
|
exports.default = series(build, serve, watcher);
|
||||||
|
@ -137,20 +117,38 @@ exports.release = () => {
|
||||||
config = null;
|
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.');
|
console.log('Please copy config.example.json and configure Github token.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
inquirer.prompt([{
|
let compatibleWithGhost;
|
||||||
|
|
||||||
|
return inquirer.prompt([{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
name: 'compatibleWithGhost',
|
name: 'compatibleWithGhost',
|
||||||
message: 'Which version of Ghost is it compatible with?',
|
message: 'Which version of Ghost is it compatible with?',
|
||||||
default: '3.0.0'
|
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 => {
|
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({
|
const changelog = new releaseUtils.Changelog({
|
||||||
changelogPath: CHANGELOG_PATH,
|
changelogPath: CHANGELOG_PATH,
|
||||||
folder: path.join(process.cwd(), '.')
|
folder: path.join(process.cwd(), '.')
|
||||||
|
@ -164,25 +162,27 @@ exports.release = () => {
|
||||||
.sort()
|
.sort()
|
||||||
.clean();
|
.clean();
|
||||||
|
|
||||||
releaseUtils
|
return Promise.resolve();
|
||||||
.releases
|
})
|
||||||
.create({
|
.then(() => releaseUtils.releases.create({
|
||||||
draft: true,
|
draft: true,
|
||||||
preRelease: false,
|
preRelease: false,
|
||||||
tagName: newVersion,
|
tagName: newVersion,
|
||||||
releaseName: newVersion,
|
releaseName: newVersion + '+banana',
|
||||||
userAgent: USER_AGENT,
|
userAgent: 'Casper',
|
||||||
uri: `https://api.github.com/repos/${REPO}/releases`,
|
uri: `https://api.github.com/repos/${REPO}/releases`,
|
||||||
github: {
|
github: {
|
||||||
username: config.github.username,
|
|
||||||
token: config.github.token
|
token: config.github.token
|
||||||
},
|
},
|
||||||
content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`],
|
content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`],
|
||||||
changelogPath: CHANGELOG_PATH
|
changelogPath: CHANGELOG_PATH
|
||||||
})
|
}))
|
||||||
.then(response => {
|
.then((response) => {
|
||||||
console.log(`\nRelease draft generated: ${response.releaseUrl}\n`);
|
console.log(`\nRelease draft generated: ${response.releaseUrl}\n`);
|
||||||
});
|
return Promise.resolve();
|
||||||
});
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
process.exit(1);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue