diff --git a/pkg/runner/action.go b/pkg/runner/action.go index 42742c4d..9b14f1a4 100644 --- a/pkg/runner/action.go +++ b/pkg/runner/action.go @@ -125,20 +125,6 @@ func maybeCopyToActionDir(ctx context.Context, step actionStep, actionDir string return nil } - if rc.Config != nil && rc.Config.ActionCache != nil { - raction := step.(*stepActionRemote) - ta, err := rc.Config.ActionCache.GetTarArchive(ctx, raction.cacheDir, raction.resolvedSha, "") - if err != nil { - return err - } - defer ta.Close() - return rc.JobContainer.CopyTarStream(ctx, containerActionDir, ta) - } - - if err := removeGitIgnore(ctx, actionDir); err != nil { - return err - } - var containerActionDirCopy string containerActionDirCopy = strings.TrimSuffix(containerActionDir, actionPath) logger.Debug(containerActionDirCopy) @@ -146,6 +132,21 @@ func maybeCopyToActionDir(ctx context.Context, step actionStep, actionDir string if !strings.HasSuffix(containerActionDirCopy, `/`) { containerActionDirCopy += `/` } + + if rc.Config != nil && rc.Config.ActionCache != nil { + raction := step.(*stepActionRemote) + ta, err := rc.Config.ActionCache.GetTarArchive(ctx, raction.cacheDir, raction.resolvedSha, "") + if err != nil { + return err + } + defer ta.Close() + return rc.JobContainer.CopyTarStream(ctx, containerActionDirCopy, ta) + } + + if err := removeGitIgnore(ctx, actionDir); err != nil { + return err + } + return rc.JobContainer.CopyDir(containerActionDirCopy, actionDir+"/", rc.Config.UseGitIgnore)(ctx) } diff --git a/pkg/runner/step_action_remote.go b/pkg/runner/step_action_remote.go index 5c8a8f2f..7d0caa84 100644 --- a/pkg/runner/step_action_remote.go +++ b/pkg/runner/step_action_remote.go @@ -75,7 +75,7 @@ func (sar *stepActionRemote) prepareActionExecutor() common.Executor { remoteReader := func(ctx context.Context) actionYamlReader { return func(filename string) (io.Reader, io.Closer, error) { - spath := filename + spath := path.Join(sar.remoteAction.Path, filename) for i := 0; i < maxSymlinkDepth; i++ { tars, err := cache.GetTarArchive(ctx, sar.cacheDir, sar.resolvedSha, spath) if err != nil {