diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix index 4c2520e43ba2..e3f6e3c623ca 100644 --- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix +++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix @@ -32,6 +32,8 @@ buildGoPackage rec { sha256 = "0gz6byjnnfn9acy40hcbyzdql4199xn0yvjx2cfjjjzd9kryjrxp"; }; + patches = [ ./fix-shell-path.patch ]; + buildInputs = [ go-bindata ]; preBuild = '' diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch b/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch new file mode 100644 index 000000000000..8f71f9ed630c --- /dev/null +++ b/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch @@ -0,0 +1,25 @@ +diff --git a/shells/bash.go b/shells/bash.go +index 839b7781..2b478e1e 100644 +--- a/shells/bash.go ++++ b/shells/bash.go +@@ -7,6 +7,7 @@ import ( + "gitlab.com/gitlab-org/gitlab-ci-multi-runner/common" + "gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers" + "io" ++ "os/exec" + "path" + "runtime" + "strconv" +@@ -208,7 +209,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo + if info.User != "" { + script.Command = "su" + if runtime.GOOS == "linux" { +- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell) ++ shellPath, err := exec.LookPath(b.Shell) ++ if err != nil { ++ shellPath = "/bin/"+b.Shell ++ } ++ script.Arguments = append(script.Arguments, "-s", shellPath) + } + script.Arguments = append(script.Arguments, info.User) + script.Arguments = append(script.Arguments, "-c", shellCommand) \ No newline at end of file diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/v1-fix-shell-path.patch b/pkgs/development/tools/continuous-integration/gitlab-runner/v1-fix-shell-path.patch deleted file mode 100644 index 612c9a51f281..000000000000 --- a/pkgs/development/tools/continuous-integration/gitlab-runner/v1-fix-shell-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/shells/bash.go b/shells/bash.go -index c9c8b68..c97dbb5 100644 ---- a/shells/bash.go -+++ b/shells/bash.go -@@ -208,7 +208,7 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo - if info.User != "" { - script.Command = "su" - if runtime.GOOS == "linux" { -- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell) -+ script.Arguments = append(script.Arguments, "-s", "/run/current-system/sw/bin/"+b.Shell) - } - script.Arguments = append(script.Arguments, info.User) - script.Arguments = append(script.Arguments, "-c", shellCommand) diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix index e0c3854740ab..d51a32705923 100644 --- a/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix +++ b/pkgs/development/tools/continuous-integration/gitlab-runner/v1.nix @@ -1,16 +1,16 @@ { lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }: let - version = "1.11.2"; + version = "1.11.4"; # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64 docker_x86_64 = fetchurl { url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz"; - sha256 = "08lacd2p7915y7yjnwkj2k0b0x4qj9kc53p7qgvmq8kdi31xnh4z"; + sha256 = "1ijkzn8jkzx1dzxhkf17987ligyf758xzas6ysix5b781jnkdm8z"; }; docker_arm = fetchurl { url = "https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz"; - sha256 = "0lzvx3jfy8493q8zkbs7kgm5a3jgsi3f2x25jwg4lx7agcwwsygw"; + sha256 = "0sq2nndnkzqv2yjljg08xwa3ppddn6vqcivhfh43zwwmansvb9ha"; }; in buildGoPackage rec { @@ -29,10 +29,10 @@ buildGoPackage rec { owner = "gitlab-org"; repo = "gitlab-ci-multi-runner"; rev = "v${version}"; - sha256 = "1sjvlb5981ykc8hr4kp1ibh9jw2wdjjp9zs2nqs9lpsav4nda5fr"; + sha256 = "1pm88546cijmrrcvvrajp2g6rsrzxhy83cwwwky8jjkl5w4hhmz4"; }; - patches = [ ./v1-fix-shell-path.patch ]; + patches = [ ./fix-shell-path.patch ]; buildInputs = [ go-bindata ];