From 885178eed5d85d7c6da374e42e454bb7310b9766 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 23 Jun 2025 01:03:10 -0400 Subject: [PATCH] feat: turn warnings to failures when running validation against an app.json file --- plugins/cron/cron.go | 13 +++++++++++-- plugins/cron/triggers.go | 6 +++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/cron/cron.go b/plugins/cron/cron.go index 5768065a3..8013debe1 100644 --- a/plugins/cron/cron.go +++ b/plugins/cron/cron.go @@ -64,8 +64,9 @@ func (t TemplateCommand) CronCommand() string { // FetchCronEntriesInput is the input for the FetchCronEntries function type FetchCronEntriesInput struct { - AppName string - AppJSON *appjson.AppJSON + AppName string + AppJSON *appjson.AppJSON + WarnToFailure bool } // FetchCronEntries returns a list of cron commands for a given app @@ -89,11 +90,19 @@ func FetchCronEntries(input FetchCronEntriesInput) ([]TemplateCommand, error) { for i, c := range input.AppJSON.Cron { if c.Command == "" { + if input.WarnToFailure { + return commands, fmt.Errorf("Missing cron command for app %s (index %d)", appName, i) + } + common.LogWarn(fmt.Sprintf("Missing cron command for app %s (index %d)", appName, i)) continue } if c.Schedule == "" { + if input.WarnToFailure { + return commands, fmt.Errorf("Missing cron schedule for app %s (index %d)", appName, i) + } + common.LogWarn(fmt.Sprintf("Missing cron schedule for app %s (index %d)", appName, i)) continue } diff --git a/plugins/cron/triggers.go b/plugins/cron/triggers.go index a0f192e74..499405913 100644 --- a/plugins/cron/triggers.go +++ b/plugins/cron/triggers.go @@ -35,7 +35,11 @@ func TriggerAppJSONIsValid(appName string, appJSONPath string) error { return err } - _, err = FetchCronEntries(FetchCronEntriesInput{AppName: appName, AppJSON: &appJSON}) + _, err = FetchCronEntries(FetchCronEntriesInput{ + AppName: appName, + AppJSON: &appJSON, + WarnToFailure: true, + }) if err != nil { return err }