fix(actions): keep github.event.inputs as strings for workflow_dispatch (#38899)

`github.event.inputs` must mirror the raw `workflow_dispatch` payload,
where
GitHub keeps every input as a string. Only the separate `inputs` context
preserves declared types, e.g. booleans. A previous fix coerced boolean
inputs in the single map that fed both contexts, so
`github.event.inputs.someBool` became a real boolean and comparisons
like
`== 'true'` stopped matching.

`github.event.inputs` now stays string-only again. The `inputs` context
used
for server-side `if:` evaluation of needs-gated/matrix-deferred jobs
re-coerces booleans independently, from the job's own workflow
declaration,
so that path keeps working correctly.

Fixes https://github.com/go-gitea/gitea/issues/38896

---------

Co-authored-by: Zettat123 <zettat123@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
bircni
2026-08-13 09:36:41 +02:00
committed by GitHub
parent 5287860efb
commit 01e9febbea
13 changed files with 138 additions and 31 deletions
+4 -4
View File
@@ -1162,7 +1162,7 @@ jobs:
assert.Contains(t, dispatchPayload.Inputs, "myinput3")
assert.Equal(t, "val0", dispatchPayload.Inputs["myinput"])
assert.Equal(t, "def2", dispatchPayload.Inputs["myinput2"])
assert.Equal(t, true, dispatchPayload.Inputs["myinput3"])
assert.Equal(t, "true", dispatchPayload.Inputs["myinput3"])
})
}
@@ -1342,7 +1342,7 @@ jobs:
assert.Contains(t, dispatchPayload.Inputs, "myinput3")
assert.Equal(t, "val0", dispatchPayload.Inputs["myinput"])
assert.Equal(t, "def2", dispatchPayload.Inputs["myinput2"])
assert.Equal(t, true, dispatchPayload.Inputs["myinput3"])
assert.Equal(t, "true", dispatchPayload.Inputs["myinput3"])
})
}
@@ -1473,7 +1473,7 @@ jobs:
assert.Contains(t, dispatchPayload.Inputs, "myinput3")
assert.Equal(t, "val0", dispatchPayload.Inputs["myinput"])
assert.Equal(t, "def2", dispatchPayload.Inputs["myinput2"])
assert.Equal(t, true, dispatchPayload.Inputs["myinput3"])
assert.Equal(t, "true", dispatchPayload.Inputs["myinput3"])
})
}
@@ -1670,7 +1670,7 @@ jobs:
assert.Contains(t, dispatchPayload.Inputs, "myinput3")
assert.Equal(t, "val0", dispatchPayload.Inputs["myinput"])
assert.Equal(t, "def2", dispatchPayload.Inputs["myinput2"])
assert.Equal(t, true, dispatchPayload.Inputs["myinput3"])
assert.Equal(t, "true", dispatchPayload.Inputs["myinput3"])
})
}