diff --git a/README.md b/README.md index 2ff8629..5ec24f8 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ Automate releases with Conventional Commit Messages. | `upload_url` | Directly related to [**Create a release**](https://developer.github.com/v3/repos/releases/#response-4) API | | `tag_name` | Directly related to [**Create a release**](https://developer.github.com/v3/repos/releases/#response-4) API | | `fork` | Should the PR be created from a fork (does not work with `secrets.GITHUB_TOKEN`) | +| `command` | release-please command to run, either `github-release`, or `release-pr` (_defaults to running both_) | ### Release types supported diff --git a/action.yml b/action.yml index 4c33c9d..8193591 100644 --- a/action.yml +++ b/action.yml @@ -26,6 +26,9 @@ inputs: changelog-types: description: 'changlelog commit types' require: false + command: + description: 'release-please command to run, either "github-release", or "release-pr" (defaults to running both)' + require: false runs: using: 'node12' main: 'dist/index.js' diff --git a/dist/index.js b/dist/index.js index cc6db81..3dccc99 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2235,46 +2235,51 @@ async function main () { 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 = undefined + let changelogSections if (changelogTypes) { changelogSections = JSON.parse(changelogTypes) } // First we check for any merged release PRs (PRs merged with the label // "autorelease: pending"): - 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) + 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: - 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() + 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 => { diff --git a/index.js b/index.js index dd4bceb..7d23136 100644 --- a/index.js +++ b/index.js @@ -13,46 +13,51 @@ async function main () { 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 = undefined + let changelogSections if (changelogTypes) { changelogSections = JSON.parse(changelogTypes) } // First we check for any merged release PRs (PRs merged with the label // "autorelease: pending"): - 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) + 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: - 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() + 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 => {