diff --git a/act/cacheproxy/handler.go b/act/cacheproxy/handler.go index 79d3f14b..5b77c166 100644 --- a/act/cacheproxy/handler.go +++ b/act/cacheproxy/handler.go @@ -167,11 +167,7 @@ func (h *Handler) ExternalURL() string { // The function returns the 32-bit random key which the run will use to identify itself. func (h *Handler) AddRun(data RunData) (string, error) { for retries := 0; retries < 3; retries++ { - key, err := common.RandName(4) - if err != nil { - return "", errors.New("Could not generate the run id") - } - + key := common.MustRandName(4) _, loaded := h.runs.LoadOrStore(key, data) if !loaded { // The key was unique and added successfully diff --git a/act/common/randname.go b/act/common/randname.go index a9350106..2010680e 100644 --- a/act/common/randname.go +++ b/act/common/randname.go @@ -5,12 +5,21 @@ package common import ( "crypto/rand" "encoding/hex" + "fmt" ) -func RandName(size int) (string, error) { +func randName(size int) (string, error) { randBytes := make([]byte, size) if _, err := rand.Read(randBytes); err != nil { return "", err } return hex.EncodeToString(randBytes), nil } + +func MustRandName(size int) string { + name, err := randName(size) + if err != nil { + panic(fmt.Errorf("RandName(%d): %v", size, err)) + } + return name +} diff --git a/act/runner/action_cache.go b/act/runner/action_cache.go index 219656cf..c884eb4f 100644 --- a/act/runner/action_cache.go +++ b/act/runner/action_cache.go @@ -39,10 +39,7 @@ func (c GoGitActionCache) Fetch(ctx context.Context, cacheDir, url, ref, token s if err != nil { return "", err } - branchName, err := common.RandName(12) - if err != nil { - return "", err - } + branchName := common.MustRandName(12) var auth transport.AuthMethod if token != "" { diff --git a/act/runner/run_context.go b/act/runner/run_context.go index 67ceefa4..533de691 100644 --- a/act/runner/run_context.go +++ b/act/runner/run_context.go @@ -283,10 +283,7 @@ func (rc *RunContext) startHostEnvironment() common.Executor { return true }) cacheDir := rc.ActionCacheDir() - randName, err := common.RandName(8) - if err != nil { - return err - } + randName := common.MustRandName(8) miscpath := filepath.Join(cacheDir, randName) actPath := filepath.Join(miscpath, "act") if err := os.MkdirAll(actPath, 0o777); err != nil { @@ -624,10 +621,7 @@ func (rc *RunContext) sh(ctx context.Context, script string) (stdout, stderr str env[k] = v } - base, err := common.RandName(8) - if err != nil { - return "", "", err - } + base := common.MustRandName(8) name := base + ".sh" oldStdout, oldStderr := rc.JobContainer.ReplaceLogWriter(hout, herr) err = rc.JobContainer.Copy(rc.JobContainer.GetActPath(), &container.FileEntry{