fix: composite action log result reported as step result (#801)

Act logs an array of stepID to signal that this is an partial step result within an composite actions, this is the case for years and act_runner never handled it correctly.

Ref: <43e6958fa3/pkg/runner/logger.go (L142)>

Reviewed-on: https://gitea.com/gitea/act_runner/pulls/801
Reviewed-by: silverwind <silverwind@noreply.gitea.com>
This commit is contained in:
ChristopherHX
2026-02-22 14:56:09 +00:00
parent ae6e5dfcf7
commit f0f9f0c8ab
2 changed files with 29 additions and 2 deletions

View File

@@ -196,8 +196,23 @@ func TestReporter_Fire(t *testing.T) {
assert.NoError(t, reporter.Fire(&log.Entry{Message: "::debug::debug log line", Data: dataStep0}))
assert.NoError(t, reporter.Fire(&log.Entry{Message: "::debug::debug log line", Data: dataStep0}))
assert.NoError(t, reporter.Fire(&log.Entry{Message: "regular log line", Data: dataStep0}))
assert.NoError(t, reporter.Fire(&log.Entry{Message: "composite step result", Data: map[string]interface{}{
"stage": "Main",
"stepID": []string{"0", "0"},
"stepNumber": 0,
"raw_output": true,
"stepResult": "failure",
}}))
assert.Equal(t, runnerv1.Result_RESULT_UNSPECIFIED, reporter.state.Steps[0].Result)
assert.NoError(t, reporter.Fire(&log.Entry{Message: "step result", Data: map[string]interface{}{
"stage": "Main",
"stepNumber": 0,
"raw_output": true,
"stepResult": "success",
}}))
assert.Equal(t, runnerv1.Result_RESULT_SUCCESS, reporter.state.Steps[0].Result)
assert.Equal(t, int64(3), reporter.state.Steps[0].LogLength)
assert.Equal(t, int64(5), reporter.state.Steps[0].LogLength)
})
}