refactor: return more errors, add more tests (#679)
adding more tests returns same message for short SHA format like GitHub Actions refactor error checking add more errors :)
This commit is contained in:
17
pkg/runner/step_context.go
Executable file → Normal file
17
pkg/runner/step_context.go
Executable file → Normal file
@@ -14,6 +14,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/kballard/go-shellquote"
|
||||
"github.com/pkg/errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/nektos/act/pkg/common"
|
||||
@@ -82,13 +83,17 @@ func (sc *StepContext) Executor() common.Executor {
|
||||
}
|
||||
|
||||
actionDir := fmt.Sprintf("%s/%s", rc.ActionCacheDir(), strings.ReplaceAll(step.Uses, "/", "-"))
|
||||
gitClone := common.NewGitCloneExecutor(common.NewGitCloneExecutorInput{
|
||||
URL: remoteAction.CloneURL(),
|
||||
Ref: remoteAction.Ref,
|
||||
Dir: actionDir,
|
||||
Token: github.Token,
|
||||
})
|
||||
if err := gitClone(context.TODO()); err != nil {
|
||||
err = errors.Cause(err)
|
||||
return common.NewErrorExecutor(fmt.Errorf("Unable to resolve action `%s`, the provided ref `%s` is the shortened version of a commit SHA, which is not supported. Please use the full commit SHA `%s` instead", step.Uses, remoteAction.Ref, err.Error()))
|
||||
}
|
||||
return common.NewPipelineExecutor(
|
||||
common.NewGitCloneExecutor(common.NewGitCloneExecutorInput{
|
||||
URL: remoteAction.CloneURL(),
|
||||
Ref: remoteAction.Ref,
|
||||
Dir: actionDir,
|
||||
Token: github.Token,
|
||||
}),
|
||||
sc.setupAction(actionDir, remoteAction.Path),
|
||||
sc.runAction(actionDir, remoteAction.Path),
|
||||
)
|
||||
|
@@ -19,6 +19,9 @@ func TestStepContextExecutor(t *testing.T) {
|
||||
{"testdata", "uses-github-noref", "push", "Expected format {org}/{repo}[/path]@ref", platforms, ""},
|
||||
{"testdata", "uses-github-root", "push", "", platforms, ""},
|
||||
{"testdata", "uses-github-path", "push", "", platforms, ""},
|
||||
{"testdata", "uses-docker-url", "push", "", platforms, ""},
|
||||
{"testdata", "uses-github-full-sha", "push", "", platforms, ""},
|
||||
{"testdata", "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, ""},
|
||||
}
|
||||
// These tests are sufficient to only check syntax.
|
||||
ctx := common.WithDryrun(context.Background(), true)
|
||||
|
7
pkg/runner/testdata/uses-github-full-sha/main.yml
vendored
Normal file
7
pkg/runner/testdata/uses-github-full-sha/main.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
name: uses-github-root
|
||||
on: push
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/hello-world-docker-action@b136eb8894c5cb1dd5807da824be97ccdf9b5423
|
7
pkg/runner/testdata/uses-github-short-sha/main.yml
vendored
Normal file
7
pkg/runner/testdata/uses-github-short-sha/main.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
name: uses-github-root
|
||||
on: push
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/hello-world-docker-action@b136eb8
|
Reference in New Issue
Block a user