mirror of
https://github.com/wagoid/commitlint-github-action.git
synced 2025-11-07 16:06:56 +00:00
fix(action): fix bug with value, add tests
This commit is contained in:
parent
83467da07b
commit
2640e4c8bf
2 changed files with 45 additions and 7 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import { existsSync } from 'fs'
|
import { existsSync } from 'fs'
|
||||||
import { resolve } from 'path'
|
import { resolve } from 'path'
|
||||||
import { getInput, setFailed } from '@actions/core'
|
import { getInput, setFailed, setOutput } from '@actions/core'
|
||||||
import { context as eventContext, getOctokit } from '@actions/github'
|
import { context as eventContext, getOctokit } from '@actions/github'
|
||||||
import lint from '@commitlint/lint'
|
import lint from '@commitlint/lint'
|
||||||
import { format } from '@commitlint/format'
|
import { format } from '@commitlint/format'
|
||||||
|
|
@ -16,7 +16,7 @@ const { GITHUB_EVENT_NAME, GITHUB_SHA } = process.env
|
||||||
|
|
||||||
const configPath = resolve(process.env.GITHUB_WORKSPACE, getInput('configFile'))
|
const configPath = resolve(process.env.GITHUB_WORKSPACE, getInput('configFile'))
|
||||||
|
|
||||||
const failOnErrors = resolve(process.env.GITHUB_WORKSPACE, getInput('failOnErrors', { required: false }))
|
const failOnErrors = getInput('failOnErrors')
|
||||||
|
|
||||||
const getCommitDepth = () => {
|
const getCommitDepth = () => {
|
||||||
const commitDepthString = getInput('commitDepth')
|
const commitDepthString = getInput('commitDepth')
|
||||||
|
|
@ -147,12 +147,12 @@ const showLintResults = async ([from, to]) => {
|
||||||
|
|
||||||
if (hasOnlyWarnings(lintedCommits)) {
|
if (hasOnlyWarnings(lintedCommits)) {
|
||||||
handleOnlyWarnings(formattedResults)
|
handleOnlyWarnings(formattedResults)
|
||||||
} else if (formattedResults && (failOnErrors == false)) {
|
} else if (formattedResults && failOnErrors === 'false') {
|
||||||
// https://github.com/actions/toolkit/tree/master/packages/core#exit-codes
|
// https://github.com/actions/toolkit/tree/master/packages/core#exit-codes
|
||||||
// this would be a good place to implement the setNeutral() when it's eventually implimented.
|
// this would be a good place to implement the setNeutral() when it's eventually implimented.
|
||||||
// for now it can pass with a check mark.
|
// for now it can pass with a check mark.
|
||||||
console.log('Passing despite errors ✅')
|
console.log('Passing despite errors ✅')
|
||||||
console.log(`You have commit messages with errors\n\n${formattedResults}`)
|
setOutput(`You have commit messages with errors\n\n${formattedResults}`)
|
||||||
} else if (formattedResults) {
|
} else if (formattedResults) {
|
||||||
setFailedAction(formattedResults)
|
setFailedAction(formattedResults)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -164,7 +164,6 @@ const exitWithMessage = (message) => (error) => {
|
||||||
setFailedAction(`${message}\n${error.message}\n${error.stack}`)
|
setFailedAction(`${message}\n${error.message}\n${error.stack}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const commitLinterAction = () =>
|
const commitLinterAction = () =>
|
||||||
getRangeForEvent()
|
getRangeForEvent()
|
||||||
.catch(
|
.catch(
|
||||||
|
|
|
||||||
|
|
@ -110,10 +110,49 @@ describe('Commit Linter action', () => {
|
||||||
|
|
||||||
await runAction()
|
await runAction()
|
||||||
|
|
||||||
|
console.log()
|
||||||
td.verify(core.setFailed(contains('wrong message 1')))
|
td.verify(core.setFailed(contains('wrong message 1')))
|
||||||
td.verify(core.setFailed(contains('wrong message 2')))
|
td.verify(core.setFailed(contains('wrong message 2')))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should pass for push range with wrong messages with failOnErrors set to false', async () => {
|
||||||
|
td.when(core.getInput('failOnErrors')).thenReturn('false')
|
||||||
|
cwd = await git.bootstrap('fixtures/conventional')
|
||||||
|
await gitEmptyCommit(cwd, 'message from before push')
|
||||||
|
await gitEmptyCommit(cwd, 'wrong message 1')
|
||||||
|
await gitEmptyCommit(cwd, 'wrong message 2')
|
||||||
|
const [before, , to] = await getCommitHashes(cwd)
|
||||||
|
await createPushEventPayload(cwd, { before, to })
|
||||||
|
updatePushEnvVars(cwd, to)
|
||||||
|
td.replace(process, 'cwd', () => cwd)
|
||||||
|
td.replace(console, 'log')
|
||||||
|
|
||||||
|
await runAction()
|
||||||
|
|
||||||
|
td.verify(core.setFailed(), { times: 0, ignoreExtraArgs: true })
|
||||||
|
td.verify(console.log(contains('Passing despite errors ✅')))
|
||||||
|
td.verify(core.setOutput(contains('wrong message 1')))
|
||||||
|
td.verify(core.setOutput(contains('wrong message 2')))
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should pass for push range with correct messages with failOnErrors set to false', async () => {
|
||||||
|
td.when(core.getInput('failOnErrors')).thenReturn('false')
|
||||||
|
cwd = await git.bootstrap('fixtures/conventional')
|
||||||
|
await gitEmptyCommit(cwd, 'message from before push')
|
||||||
|
await gitEmptyCommit(cwd, 'chore: correct message 1')
|
||||||
|
await gitEmptyCommit(cwd, 'chore: correct message 2')
|
||||||
|
const [before, , to] = await getCommitHashes(cwd)
|
||||||
|
await createPushEventPayload(cwd, { before, to })
|
||||||
|
updatePushEnvVars(cwd, to)
|
||||||
|
td.replace(process, 'cwd', () => cwd)
|
||||||
|
td.replace(console, 'log')
|
||||||
|
|
||||||
|
await runAction()
|
||||||
|
|
||||||
|
td.verify(core.setFailed(), { times: 0, ignoreExtraArgs: true })
|
||||||
|
td.verify(console.log('Lint free! 🎉'))
|
||||||
|
})
|
||||||
|
|
||||||
it('should pass for push range with correct messages', async () => {
|
it('should pass for push range with correct messages', async () => {
|
||||||
cwd = await git.bootstrap('fixtures/conventional')
|
cwd = await git.bootstrap('fixtures/conventional')
|
||||||
await gitEmptyCommit(cwd, 'message from before push')
|
await gitEmptyCommit(cwd, 'message from before push')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue