From 4a8ee4ce577a7abcf42500fa1e3177536cd6fcd2 Mon Sep 17 00:00:00 2001 From: bircni Date: Tue, 29 Sep 2026 18:44:57 +0000 Subject: [PATCH] fix: resolve container sleep through PATH (#1255) Resolve the job container's sleep command through PATH so images with nonstandard binary locations, including Nix, can run jobs. Closes https://gitea.com/gitea/runner/issues/808 --------- Co-authored-by: silverwind Reviewed-on: https://gitea.com/gitea/runner/pulls/1255 Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com> --- act/runner/run_context.go | 2 +- act/runner/run_context_test.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/act/runner/run_context.go b/act/runner/run_context.go index 78a161c8..f2e1a7c3 100644 --- a/act/runner/run_context.go +++ b/act/runner/run_context.go @@ -575,7 +575,7 @@ func (rc *RunContext) startJobContainer() common.Executor { ext := container.LinuxContainerEnvironmentExtensions{} containerInput := &container.NewContainerInput{ Cmd: nil, - Entrypoint: []string{"/bin/sleep", fmt.Sprint(rc.Config.ContainerMaxLifetime.Round(time.Second).Seconds())}, + Entrypoint: []string{"sleep", fmt.Sprint(rc.Config.ContainerMaxLifetime.Round(time.Second).Seconds())}, WorkingDir: ext.ToContainerPath(rc.Config.Workdir), Image: image, Username: username, diff --git a/act/runner/run_context_test.go b/act/runner/run_context_test.go index 0fcbed01..901715f9 100644 --- a/act/runner/run_context_test.go +++ b/act/runner/run_context_test.go @@ -343,7 +343,7 @@ jobs: require.Nil(t, redis.Cmd) } -func TestStartJobContainerEvaluatesContainersOnceAndTrimsDockerPrefix(t *testing.T) { +func TestStartJobContainerBuildsEvaluatedJobAndServiceInputs(t *testing.T) { inputs := startJobContainerInputs(t, ` jobs: job: @@ -359,6 +359,7 @@ jobs: require.Equal(t, []string{"/entry.sh"}, redis.Entrypoint) require.Equal(t, []string{"redis-server", "--port", "6380"}, redis.Cmd) require.Equal(t, "node:20", job.Image) + require.Equal(t, "sleep", job.Entrypoint[0]) require.Equal(t, "--label ${{ github.job }}", job.WorkflowOptions) require.Equal(t, "${{ vars.TITLE }}", job.Password) }