gitlab-runner: 14.8.2 -> 14.9.0
This commit is contained in:
parent
34919ae092
commit
699c30056b
3 changed files with 98 additions and 17 deletions
|
@ -1,7 +1,7 @@
|
||||||
{ lib, buildGoModule, fetchFromGitLab, fetchurl }:
|
{ lib, buildGoModule, fetchFromGitLab, fetchurl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "14.8.2";
|
version = "14.9.0";
|
||||||
in
|
in
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
|
@ -14,17 +14,18 @@ buildGoModule rec {
|
||||||
"-X ${commonPackagePath}.REVISION=v${version}"
|
"-X ${commonPackagePath}.REVISION=v${version}"
|
||||||
];
|
];
|
||||||
|
|
||||||
vendorSha256 = "1aa04hbavr0bclddp5adjwwj21sp46gbhjydxc3w7vs1siw0ivq2";
|
vendorSha256 = "0ag3pmcrxksgikdcvl9rv2s3kn7l0dj41pf2m9dq0g2a1j45nydn";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "gitlab-org";
|
owner = "gitlab-org";
|
||||||
repo = "gitlab-runner";
|
repo = "gitlab-runner";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1zwr09lrrc3xx3sp00vs30ks0n77d7v0xkz0mz9jy2qdls9nfmrv";
|
sha256 = "0qqwg2k50cq7bc7k1389knrjq6xdbmlxd5kavyj7pg4sfapa3i8l";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./fix-shell-path.patch
|
./fix-shell-path.patch
|
||||||
|
./remove-bash-test.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
diff --git a/shells/bash.go b/shells/bash.go
|
diff --git a/shells/bash.go b/shells/bash.go
|
||||||
index bd99eca1a..9873dff6b 100644
|
index 18d608445..f158ffc0b 100644
|
||||||
--- a/shells/bash.go
|
--- a/shells/bash.go
|
||||||
+++ b/shells/bash.go
|
+++ b/shells/bash.go
|
||||||
@@ -3,6 +3,7 @@ package shells
|
@@ -3,6 +3,7 @@ package shells
|
||||||
|
@ -10,16 +10,16 @@ index bd99eca1a..9873dff6b 100644
|
||||||
"path"
|
"path"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -300,7 +301,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (*common.Shell
|
@@ -307,7 +308,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (*common.Shell
|
||||||
if info.User != "" {
|
|
||||||
script.Command = "su"
|
script.Command = "su"
|
||||||
if runtime.GOOS == "linux" {
|
if runtime.GOOS == OSLinux {
|
||||||
- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell)
|
- script.Arguments = []string{"-s", "/bin/" + b.Shell, info.User, "-c", script.CmdLine}
|
||||||
+ shellPath, err := exec.LookPath(b.Shell)
|
+ shellPath, err := exec.LookPath(b.Shell)
|
||||||
+ if err != nil {
|
+ if err != nil {
|
||||||
+ shellPath = "/bin/" + b.Shell
|
+ shellPath = "/bin/" + b.Shell
|
||||||
+ }
|
+ }
|
||||||
+ script.Arguments = append(script.Arguments, "-s", shellPath)
|
+ script.Arguments = []string{"-s", shellPath, info.User, "-c", script.CmdLine}
|
||||||
|
} else {
|
||||||
|
script.Arguments = []string{info.User, "-c", script.CmdLine}
|
||||||
}
|
}
|
||||||
script.Arguments = append(
|
|
||||||
script.Arguments,
|
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
diff --git a/shells/bash_test.go b/shells/bash_test.go
|
||||||
|
index b8a48f85e..0e3173fc3 100644
|
||||||
|
--- a/shells/bash_test.go
|
||||||
|
+++ b/shells/bash_test.go
|
||||||
|
@@ -4,12 +4,9 @@
|
||||||
|
package shells
|
||||||
|
|
||||||
|
import (
|
||||||
|
- "runtime"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
- "github.com/stretchr/testify/require"
|
||||||
|
- "gitlab.com/gitlab-org/gitlab-runner/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestBash_CommandShellEscapesLegacy(t *testing.T) {
|
||||||
|
@@ -84,62 +81,3 @@ func TestBash_CheckForErrors(t *testing.T) {
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-func TestBash_GetConfiguration(t *testing.T) {
|
||||||
|
- tests := map[string]struct {
|
||||||
|
- info common.ShellScriptInfo
|
||||||
|
- cmd string
|
||||||
|
- args []string
|
||||||
|
- os string
|
||||||
|
- }{
|
||||||
|
- `bash`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "bash", Type: common.NormalShell},
|
||||||
|
- cmd: "bash",
|
||||||
|
- },
|
||||||
|
- `bash -l`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "bash", Type: common.LoginShell},
|
||||||
|
- cmd: "bash",
|
||||||
|
- args: []string{"-l"},
|
||||||
|
- },
|
||||||
|
- `su -s /bin/bash foobar -c bash`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "bash", User: "foobar", Type: common.NormalShell},
|
||||||
|
- cmd: "su",
|
||||||
|
- args: []string{"-s", "/bin/bash", "foobar", "-c", "bash"},
|
||||||
|
- os: OSLinux,
|
||||||
|
- },
|
||||||
|
- `su -s /bin/bash foobar -c $'bash -l'`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "bash", User: "foobar", Type: common.LoginShell},
|
||||||
|
- cmd: "su",
|
||||||
|
- args: []string{"-s", "/bin/bash", "foobar", "-c", "bash -l"},
|
||||||
|
- os: OSLinux,
|
||||||
|
- },
|
||||||
|
- `su -s /bin/sh foobar -c $'sh -l'`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "sh", User: "foobar", Type: common.LoginShell},
|
||||||
|
- cmd: "su",
|
||||||
|
- args: []string{"-s", "/bin/sh", "foobar", "-c", "sh -l"},
|
||||||
|
- os: OSLinux,
|
||||||
|
- },
|
||||||
|
- `su foobar -c $'bash -l'`: {
|
||||||
|
- info: common.ShellScriptInfo{Shell: "bash", User: "foobar", Type: common.LoginShell},
|
||||||
|
- cmd: "su",
|
||||||
|
- args: []string{"foobar", "-c", "bash -l"},
|
||||||
|
- os: "darwin",
|
||||||
|
- },
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for tn, tc := range tests {
|
||||||
|
- t.Run(tn, func(t *testing.T) {
|
||||||
|
- if tc.os != "" && tc.os != runtime.GOOS {
|
||||||
|
- t.Skipf("test only runs on %s", tc.os)
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- sh := BashShell{Shell: tc.info.Shell}
|
||||||
|
- config, err := sh.GetConfiguration(tc.info)
|
||||||
|
- require.NoError(t, err)
|
||||||
|
-
|
||||||
|
- assert.Equal(t, tc.cmd, config.Command)
|
||||||
|
- assert.Equal(t, tc.args, config.Arguments)
|
||||||
|
- assert.Equal(t, tn, config.CmdLine)
|
||||||
|
- })
|
||||||
|
- }
|
||||||
|
-}
|
Loading…
Reference in a new issue