mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2025-08-11 17:50:58 +00:00
fix: panic if a step in a job is nil (#1145)
* fix: panic if a step is a job is nil * simplify * [no ci] Add testdata * [no ci] Add Test
This commit is contained in:
parent
bb13ab9aa8
commit
eaef7fb879
3 changed files with 13 additions and 0 deletions
|
@ -39,6 +39,11 @@ func newJobExecutor(info jobInfo, sf stepFactory, rc *RunContext) common.Executo
|
||||||
preSteps = append(preSteps, info.startContainer())
|
preSteps = append(preSteps, info.startContainer())
|
||||||
|
|
||||||
for i, stepModel := range infoSteps {
|
for i, stepModel := range infoSteps {
|
||||||
|
if stepModel == nil {
|
||||||
|
return func(ctx context.Context) error {
|
||||||
|
return fmt.Errorf("invalid Step %v: missing run or uses key", i)
|
||||||
|
}
|
||||||
|
}
|
||||||
if stepModel.ID == "" {
|
if stepModel.ID == "" {
|
||||||
stepModel.ID = fmt.Sprintf("%d", i)
|
stepModel.ID = fmt.Sprintf("%d", i)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ func TestJobExecutor(t *testing.T) {
|
||||||
{workdir, "uses-docker-url", "push", "", platforms},
|
{workdir, "uses-docker-url", "push", "", platforms},
|
||||||
{workdir, "uses-github-full-sha", "push", "", platforms},
|
{workdir, "uses-github-full-sha", "push", "", platforms},
|
||||||
{workdir, "uses-github-short-sha", "push", "Unable to resolve action `actions/hello-world-docker-action@b136eb8`, the provided ref `b136eb8` is the shortened version of a commit SHA, which is not supported. Please use the full commit SHA `b136eb8894c5cb1dd5807da824be97ccdf9b5423` instead", platforms},
|
{workdir, "uses-github-short-sha", "push", "Unable to resolve action `actions/hello-world-docker-action@b136eb8`, the provided ref `b136eb8` is the shortened version of a commit SHA, which is not supported. Please use the full commit SHA `b136eb8894c5cb1dd5807da824be97ccdf9b5423` instead", platforms},
|
||||||
|
{workdir, "job-nil-step", "push", "invalid Step 0: missing run or uses key", platforms},
|
||||||
}
|
}
|
||||||
// These tests are sufficient to only check syntax.
|
// These tests are sufficient to only check syntax.
|
||||||
ctx := common.WithDryrun(context.Background(), true)
|
ctx := common.WithDryrun(context.Background(), true)
|
||||||
|
|
7
act/runner/testdata/job-nil-step/push.yml
vendored
Normal file
7
act/runner/testdata/job-nil-step/push.yml
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
on: push
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
- run: exit 0
|
Loading…
Add table
Add a link
Reference in a new issue