Files
beekeeper-studio/.github/scripts/create_draft_release.js
2024-11-11 13:25:25 -06:00

47 lines
1.2 KiB
JavaScript

/**
* Create a draft release
* @param {Object} options
*/
module.exports = async({github, core}, owner, repo, tagName) => {
const releases = await github.rest.repos.listReleases({
owner,
repo
});
// NOTE(@day): for test releases
tagName = tagName.replace('test', 'v');
let uploadUrl;
let assetsUrl;
const draftRelease = releases.data.find(
release => release.tag_name === tagName && release.draft
);
let finishedRelease = null
if (draftRelease) {
core.info(`Draft release with tag ${tagName} already exists.`);
finishedRelease = { data: draftRelease }
} else {
const newRelease = await github.rest.repos.createRelease({
owner,
repo,
tag_name: tagName,
name: `Release ${tagName}`,
body: 'Description of the release',
draft: true,
prerelease: false,
});
finishedRelease = newRelease
core.info(`Draft release created with tag ${tagName}: ${newRelease.data.html_url}`);
}
core.setOutput('upload_url', finishedRelease.data.upload_url);
core.setOutput('assets_url', finishedRelease.data.assets_url);
core.setOutput('id', finishedRelease.data.id)
core.setOutput('json', JSON.stringify(finishedRelease.data))
}