From 960b552ba9c616489ed33395c20029eeefb48858 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 5 Jul 2025 22:05:33 +0200 Subject: [PATCH] feat: add enable-email-notifications to the schema --- act/model/workflow_test.go | 21 +++++++-------------- act/schema/workflow_schema.json | 5 +++++ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/act/model/workflow_test.go b/act/model/workflow_test.go index 9347a171..cb92250e 100644 --- a/act/model/workflow_test.go +++ b/act/model/workflow_test.go @@ -112,32 +112,25 @@ jobs: func TestReadWorkflow_Notifications(t *testing.T) { for _, testCase := range []struct { expected bool - hasErr bool + err string snippet string }{ { expected: false, - hasErr: false, snippet: "# nothing", }, { expected: true, - hasErr: false, snippet: "enable-email-notifications: true", }, { expected: false, - hasErr: false, snippet: "enable-email-notifications: false", }, { - hasErr: true, + err: "`invalid` into bool", snippet: "enable-email-notifications: invalid", }, - { - hasErr: true, - snippet: "enable-email-notifications: [1,2]", - }, } { t.Run(testCase.snippet, func(t *testing.T) { yaml := fmt.Sprintf(` @@ -154,12 +147,12 @@ jobs: `, testCase.snippet) workflow, err := ReadWorkflow(strings.NewReader(yaml)) - assert.NoError(t, err, "read workflow should succeed") - - notification, err := workflow.Notifications() - if testCase.hasErr { - assert.Error(t, err) + if testCase.err != "" { + assert.ErrorContains(t, err, testCase.err) } else { + assert.NoError(t, err, "read workflow should succeed") + + notification, err := workflow.Notifications() assert.NoError(t, err) assert.Equal(t, testCase.expected, notification) } diff --git a/act/schema/workflow_schema.json b/act/schema/workflow_schema.json index b87655c1..29c6075b 100644 --- a/act/schema/workflow_schema.json +++ b/act/schema/workflow_schema.json @@ -7,6 +7,7 @@ "properties": { "on": "on", "name": "workflow-name", + "enable-email-notifications": "workflow-enable-email-notifications", "run-name": "run-name", "defaults": "workflow-defaults", "env": "workflow-env", @@ -44,6 +45,10 @@ "description": "The name of the workflow that GitHub displays on your repository's 'Actions' tab.\n\n[Documentation](https://docs.github.com/actions/using-workflows/workflow-syntax-for-github-actions#name)", "string": {} }, + "workflow-enable-email-notifications": { + "description": "Send an email notification when a workflow run fails.\n\n[Documentation](https://forgejo.org/docs/next/user/actions/#enable-email-notifications)", + "boolean": {} + }, "run-name": { "context": ["github", "inputs", "vars"], "string": {},