diff --git a/scripts/create_release.js b/scripts/create_release.js new file mode 100644 index 00000000..9010a830 --- /dev/null +++ b/scripts/create_release.js @@ -0,0 +1,51 @@ +const fetch = require('node-fetch'); + +const TITLE_DELIMITER = '\n\n'; + +const changelog = process.argv[2] || ''; + +function releaseUrl(repo) { + return `https://api.github.com/repos/${repo}/releases`; +}; + +function postRelease({ + repo, + token, + tag, + body +}) { + console.log('posting release'); + fetch(releaseUrl(repo), { + method: 'POST', + headers: { Authorization: `token ${token}` }, + body: JSON.stringify({ + tag_name: tag, + name: tag, + body + }) + }); +} + +function release({ repo, token, tag }) { + console.log('In release'); + + if (!(changelog && token && repo)) { + return; + } + + const body = changelog.substr(changelog.indexOf(TITLE_DELIMITER) + TITLE_DELIMITER.length); + + postRelease({ + repo, + token, + tag, + body + }); +}; + +release({ + repo: process.env.GITHUB_REPO, + token: process.env.GITHUB_TOKEN, + tag: process.env.NEXT_VERSION, + changelog +}); diff --git a/scripts/get_diff.js b/scripts/get_diff.js index a374897e..e1279a2a 100644 --- a/scripts/get_diff.js +++ b/scripts/get_diff.js @@ -13,7 +13,7 @@ function listMessages(commits = []) { } function getCommitDiff(repo, branches, token) { - return fetch(compareUrl(repo, branches), { ...token && { headers: { token } } }) + return fetch(compareUrl(repo, branches), { ...token && { headers: { Authorization: `token ${token}` } } }) .then((res) => res.json()) .catch(() => process.exit(1)); } diff --git a/scripts/push_tag_to_master.sh b/scripts/push_tag_to_master.sh index 7deed515..b75f832b 100755 --- a/scripts/push_tag_to_master.sh +++ b/scripts/push_tag_to_master.sh @@ -14,7 +14,7 @@ echo "Rebuilding with current tag" yarn build echo "Updating changelog" -node ./scripts/update_changelog.js +CHANGELOG=$(node ./scripts/update_changelog.js) EMOJIS=(🚀 🤘 ✨ 🔔 🌈 🤯) EMOJI=${EMOJIS[$RANDOM % ${#EMOJIS[@]}]} @@ -32,3 +32,6 @@ git push https://${GITHUB_TOKEN}@github.com/$GITHUB_REPO.git master git tag $NEXT_VERSION git push origin $NEXT_VERSION + +echo "Publishing Release" +node ./scripts/create_release.js "$CHANGELOG" diff --git a/scripts/update_changelog.js b/scripts/update_changelog.js index bc611fb5..308dd2b1 100644 --- a/scripts/update_changelog.js +++ b/scripts/update_changelog.js @@ -44,6 +44,8 @@ const updateChangelog = () => { changelog.splice(6, 0, versionLog); fs.writeFileSync('./CHANGELOG.md', changelog.join('\n')); + + console.log(versionLog); }; -module.exports = updateChangelog; +updateChangelog();