From e71161acde0bbc90beb91f4fd03a93f3b4efd37b Mon Sep 17 00:00:00 2001 From: ChristopherHX Date: Thu, 13 Apr 2023 15:47:59 +0200 Subject: [PATCH] fix: reusable workflow panic (#1728) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- act/model/workflow.go | 3 ++- .../local-reusable-workflow-no-inputs-array.yml | 10 ++++++++++ .../local-reusable-workflow-no-inputs-string.yml | 9 +++++++++ act/runner/testdata/uses-workflow/local-workflow.yml | 6 ++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-array.yml create mode 100644 act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-string.yml diff --git a/act/model/workflow.go b/act/model/workflow.go index d7e2922b..35e4587b 100644 --- a/act/model/workflow.go +++ b/act/model/workflow.go @@ -123,7 +123,8 @@ type WorkflowCallResult struct { func (w *Workflow) WorkflowCallConfig() *WorkflowCall { if w.RawOn.Kind != yaml.MappingNode { - return nil + // The callers expect for "on: workflow_call" and "on: [ workflow_call ]" a non nil return value + return &WorkflowCall{} } var val map[string]yaml.Node diff --git a/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-array.yml b/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-array.yml new file mode 100644 index 00000000..3df4ae3a --- /dev/null +++ b/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-array.yml @@ -0,0 +1,10 @@ +name: reusable + +on: +- workflow_call + +jobs: + reusable_workflow_job: + runs-on: ubuntu-latest + steps: + - run: echo Test \ No newline at end of file diff --git a/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-string.yml b/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-string.yml new file mode 100644 index 00000000..7558c1c5 --- /dev/null +++ b/act/runner/testdata/.github/workflows/local-reusable-workflow-no-inputs-string.yml @@ -0,0 +1,9 @@ +name: reusable + +on: workflow_call + +jobs: + reusable_workflow_job: + runs-on: ubuntu-latest + steps: + - run: echo Test \ No newline at end of file diff --git a/act/runner/testdata/uses-workflow/local-workflow.yml b/act/runner/testdata/uses-workflow/local-workflow.yml index 070e4d0c..2e9a08d7 100644 --- a/act/runner/testdata/uses-workflow/local-workflow.yml +++ b/act/runner/testdata/uses-workflow/local-workflow.yml @@ -19,6 +19,12 @@ jobs: number_required: 1 secrets: inherit + reusable-workflow-with-on-string-notation: + uses: ./.github/workflows/local-reusable-workflow-no-inputs-string.yml + + reusable-workflow-with-on-array-notation: + uses: ./.github/workflows/local-reusable-workflow-no-inputs-array.yml + output-test: runs-on: ubuntu-latest needs: