diff --git a/README.md b/README.md index ce1cd94..4410a75 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,9 @@ jobs: # Set action as failed if test report contains any failed test fail-on-error: 'true' + # Set this action as failed if no test results were found + fail-on-empty: 'true' + # Relative path under $GITHUB_WORKSPACE where the repository was checked out. working-directory: '' diff --git a/action.yml b/action.yml index f89930a..e98e818 100644 --- a/action.yml +++ b/action.yml @@ -57,6 +57,10 @@ inputs: description: Set this action as failed if test report contain any failed test required: true default: 'true' + fail-on-empty: + description: Set this action as failed if no test results were found + required: true + default: 'true' working-directory: description: Relative path under $GITHUB_WORKSPACE where the repository was checked out required: false diff --git a/dist/index.js b/dist/index.js index e9890b6..ea71292 100644 --- a/dist/index.js +++ b/dist/index.js @@ -293,6 +293,7 @@ class TestReporter { this.listTests = core.getInput('list-tests', { required: true }); this.maxAnnotations = parseInt(core.getInput('max-annotations', { required: true })); this.failOnError = core.getInput('fail-on-error', { required: true }) === 'true'; + this.failOnEmpty = core.getInput('fail-on-empty', { required: true }) === 'true'; this.workDirInput = core.getInput('working-directory', { required: false }); this.onlySummary = core.getInput('only-summary', { required: false }) === 'true'; this.token = core.getInput('token', { required: true }); @@ -364,7 +365,7 @@ class TestReporter { core.setFailed(`Failed test were found and 'fail-on-error' option is set to ${this.failOnError}`); return; } - if (results.length === 0) { + if (results.length === 0 && this.failOnEmpty) { core.setFailed(`No test report files were found`); return; } diff --git a/src/main.ts b/src/main.ts index d0c5a06..8dfd3de 100644 --- a/src/main.ts +++ b/src/main.ts @@ -40,6 +40,7 @@ class TestReporter { readonly listTests = core.getInput('list-tests', {required: true}) as 'all' | 'failed' | 'none' readonly maxAnnotations = parseInt(core.getInput('max-annotations', {required: true})) readonly failOnError = core.getInput('fail-on-error', {required: true}) === 'true' + readonly failOnEmpty = core.getInput('fail-on-empty', {required: true}) === 'true' readonly workDirInput = core.getInput('working-directory', {required: false}) readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true' readonly token = core.getInput('token', {required: true}) @@ -135,7 +136,7 @@ class TestReporter { return } - if (results.length === 0) { + if (results.length === 0 && this.failOnEmpty) { core.setFailed(`No test report files were found`) return }