mirror of
https://github.com/googleapis/release-please-action.git
synced 2026-03-28 07:02:28 +00:00
66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
const core = require('@actions/core')
|
|
const { GitHubRelease } = require('release-please/build/src/github-release')
|
|
const { ReleasePRFactory } = require('release-please/build/src/release-pr-factory')
|
|
|
|
const RELEASE_LABEL = 'autorelease: pending'
|
|
|
|
async function main () {
|
|
const bumpMinorPreMajor = Boolean(core.getInput('bump-minor-pre-major'))
|
|
const monorepoTags = Boolean(core.getInput('monorepo-tags'))
|
|
const packageName = core.getInput('package-name')
|
|
const path = core.getInput('path') ? core.getInput('path') : undefined
|
|
const releaseType = core.getInput('release-type')
|
|
const token = core.getInput('token')
|
|
const fork = core.getInput('fork') ? true : undefined
|
|
const changelogTypes = core.getInput('changelog-types')
|
|
const command = core.getInput('command') ? core.getInput('command') : undefined
|
|
|
|
// Parse the changelogTypes if there are any
|
|
let changelogSections
|
|
if (changelogTypes) {
|
|
changelogSections = JSON.parse(changelogTypes)
|
|
}
|
|
|
|
// First we check for any merged release PRs (PRs merged with the label
|
|
// "autorelease: pending"):
|
|
if (!command || command === 'github-release') {
|
|
const gr = new GitHubRelease({
|
|
label: RELEASE_LABEL,
|
|
repoUrl: process.env.GITHUB_REPOSITORY,
|
|
packageName,
|
|
path,
|
|
token
|
|
})
|
|
const releaseCreated = await gr.createRelease()
|
|
if (releaseCreated) {
|
|
// eslint-disable-next-line
|
|
const { upload_url, tag_name } = releaseCreated
|
|
core.setOutput('release_created', true)
|
|
core.setOutput('upload_url', upload_url)
|
|
core.setOutput('tag_name', tag_name)
|
|
}
|
|
}
|
|
|
|
// Next we check for PRs merged since the last release, and groom the
|
|
// release PR:
|
|
if (!command || command === 'release-pr') {
|
|
const release = ReleasePRFactory.buildStatic(releaseType, {
|
|
monorepoTags,
|
|
packageName,
|
|
path,
|
|
apiUrl: 'https://api.github.com',
|
|
repoUrl: process.env.GITHUB_REPOSITORY,
|
|
fork,
|
|
token: token,
|
|
label: RELEASE_LABEL,
|
|
bumpMinorPreMajor,
|
|
changelogSections
|
|
})
|
|
await release.run()
|
|
}
|
|
}
|
|
|
|
main().catch(err => {
|
|
core.setFailed(`release-please failed: ${err.message}`)
|
|
})
|