@@ -58,6 +58,9 @@ export default class Trigger extends AuthCommand {
5858 description: 'Always show the full logs of the checks.',
5959 allowNo: true,
6060 }),
61+ 'fail-on-no-matching': Flags.boolean({
62+ description: 'Exit with a failing status code when there are no matching tests.',
63+ }),
6164 reporter: Flags.string({
6265 char: 'r',
6366 description: 'A list of custom reporters for the test output.',
@@ -96,6 +99,7 @@ export default class Trigger extends AuthCommand {
9699 tags: targetTags,
97100 timeout,
98101 verbose: verboseFlag,
102+ 'fail-on-no-matching': failOnNoMatchingFlag,
99103 record: shouldRecord,
100104 reporter: reporterFlag,
101105 env,
@@ -116,6 +120,7 @@ export default class Trigger extends AuthCommand {
116120 privateRunLocation,
117121 })
118122 const verbose = this.prepareVerboseFlag(verboseFlag, checklyConfig?.cli?.verbose)
123+ const failOnNoMatching = this.prepareFailOnNoMatching(failOnNoMatchingFlag, checklyConfig?.cli?.failOnNoMatching)
119124 const reporterTypes = this.prepareReportersTypes(reporterFlag as ReporterType, checklyConfig?.cli?.reporters)
120125 const reporters = createReporters(reporterTypes, location, verbose)
121126 const testRetryStrategy = this.prepareTestRetryStrategy(retries, checklyConfig?.cli?.retries)
@@ -167,6 +172,9 @@ export default class Trigger extends AuthCommand {
167172 if (err instanceof NoMatchingChecksError) {
168173 // For consistency with `checkly test`, we log a message and exit with code 0.
169174 this.log('No matching checks were found.')
175+ if (failOnNoMatching) {
176+ process.exitCode = 1
177+ }
170178 return
171179 }
172180 reporters.forEach(r => r.onError(err))
@@ -221,6 +229,10 @@ export default class Trigger extends AuthCommand {
221229 return verboseFlag ?? cliVerboseFlag ?? false
222230 }
223231
232+ prepareFailOnNoMatching (failOnNoMatchingFlag?: boolean, cliFailOnNoMatchingFlag?: boolean) {
233+ return failOnNoMatchingFlag ?? cliFailOnNoMatchingFlag ?? false
234+ }
235+
224236 prepareReportersTypes (reporterFlag: ReporterType, cliReporters: ReporterType[] = []): ReporterType[] {
225237 if (!reporterFlag && !cliReporters.length) {
226238 return [isCI ? 'ci' : 'list']
0 commit comments