Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Commit

Permalink
feat(release-please): add default branch input option (#202)
Browse files Browse the repository at this point in the history
  • Loading branch information
pragmaticivan committed Jan 31, 2021
1 parent a9e0f67 commit 4845e49
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 7 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Automate releases with Conventional Commit Messages.
| `version-file` | provide a path to a version file to increment (used by ruby releaser) |
| `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_) |
| `default-branch` | branch to open pull release PR against (detected by default) |

| output | description |
|:---:|---|
Expand Down
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ inputs:
version-file:
description: 'provide a path to a version file to increment (used by ruby releaser)'
required: false
default-branch:
description: 'branch to open pull release PR against (detected by default)'
required: false
runs:
using: 'node12'
main: 'dist/index.js'
4 changes: 3 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ async function main () {
const changelogTypes = core.getInput('changelog-types')
const command = core.getInput('command') ? core.getInput('command') : undefined
const versionFile = core.getInput('version-file') ? core.getInput('version-file') : undefined
const defaultBranch = core.getInput('default-branch') ? core.getInput('default-branch') : undefined

// Parse the changelogTypes if there are any
let changelogSections
Expand Down Expand Up @@ -60,7 +61,8 @@ async function main () {
label: RELEASE_LABEL,
bumpMinorPreMajor,
changelogSections,
versionFile
versionFile,
defaultBranch
})
const pr = await release.run()
if (pr) {
Expand Down
54 changes: 48 additions & 6 deletions test/release-please.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const core = require('@actions/core')
const sinon = require('sinon')

describe('release-please-action', () => {
it('both opens PR and tags GitHub releases by default', async () => {
it('both opens PR to the default branch and tags GitHub releases by default', async () => {
const output = {}
core.setOutput = (name, value) => {
output[name] = value
Expand All @@ -26,17 +26,59 @@ describe('release-please-action', () => {
return Release
}
const releasePR = sinon.stub().returns(25)
const buildStatic = sinon.stub().returns({
run: releasePR
})
action.getReleasePRFactory = () => {
return {
buildStatic: () => {
return {
run: releasePR
}
}
buildStatic
}
}
await action.main()
sinon.assert.calledOnce(createRelease)
sinon.assert.calledWith(buildStatic, 'node', sinon.match.hasOwn('defaultBranch', undefined))
sinon.assert.calledOnce(releasePR)
assert.deepStrictEqual(output, {
release_created: true,
upload_url: 'http://example.com',
tag_name: 'v1.0.0',
pr: 25
})
})

it('both opens PR to a different default branch and tags GitHub releases by default', async () => {
const output = {}
core.setOutput = (name, value) => {
output[name] = value
}
const input = {
'release-type': 'node',
'default-branch': 'dev'
}
core.getInput = (name) => {
return input[name]
}
const createRelease = sinon.stub().returns({
upload_url: 'http://example.com',
tag_name: 'v1.0.0'
})
action.getGitHubRelease = () => {
class Release {}
Release.prototype.createRelease = createRelease
return Release
}
const releasePR = sinon.stub().returns(25)
const buildStatic = sinon.stub().returns({
run: releasePR
})
action.getReleasePRFactory = () => {
return {
buildStatic
}
}
await action.main()
sinon.assert.calledOnce(createRelease)
sinon.assert.calledWith(buildStatic, 'node', sinon.match.hasOwn('defaultBranch', 'dev'))
sinon.assert.calledOnce(releasePR)
assert.deepStrictEqual(output, {
release_created: true,
Expand Down

0 comments on commit 4845e49

Please sign in to comment.