mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-09-27 06:00:10 +00:00
Fix entrypoint without commands
Co-authored-by: Thomas Anderson <127358482+zc-devs@users.noreply.github.com>
This commit is contained in:
parent
e2cca422c9
commit
95bdacca88
3 changed files with 56 additions and 10 deletions
|
@ -45,16 +45,16 @@ func (e *docker) toConfig(step *types.Step) *container.Config {
|
||||||
configEnv := make(map[string]string)
|
configEnv := make(map[string]string)
|
||||||
maps.Copy(configEnv, step.Environment)
|
maps.Copy(configEnv, step.Environment)
|
||||||
|
|
||||||
if len(step.Commands) != 0 {
|
if len(step.Commands) > 0 {
|
||||||
env, entry := common.GenerateContainerConf(step.Commands, e.info.OSType)
|
env, entry := common.GenerateContainerConf(step.Commands, e.info.OSType)
|
||||||
for k, v := range env {
|
for k, v := range env {
|
||||||
configEnv[k] = v
|
configEnv[k] = v
|
||||||
}
|
}
|
||||||
if len(step.Entrypoint) > 0 {
|
|
||||||
entry = step.Entrypoint
|
|
||||||
}
|
|
||||||
config.Entrypoint = entry
|
config.Entrypoint = entry
|
||||||
}
|
}
|
||||||
|
if len(step.Entrypoint) > 0 {
|
||||||
|
config.Entrypoint = step.Entrypoint
|
||||||
|
}
|
||||||
|
|
||||||
if len(configEnv) != 0 {
|
if len(configEnv) != 0 {
|
||||||
config.Env = toEnv(configEnv)
|
config.Env = toEnv(configEnv)
|
||||||
|
|
|
@ -144,14 +144,14 @@ func podContainer(step *types.Step, podName, goos string, options BackendOptions
|
||||||
container.ImagePullPolicy = v1.PullAlways
|
container.ImagePullPolicy = v1.PullAlways
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(step.Commands) != 0 {
|
if len(step.Commands) > 0 {
|
||||||
scriptEnv, command := common.GenerateContainerConf(step.Commands, goos)
|
scriptEnv, command := common.GenerateContainerConf(step.Commands, goos)
|
||||||
if len(step.Entrypoint) > 0 {
|
|
||||||
command = step.Entrypoint
|
|
||||||
}
|
|
||||||
container.Command = command
|
container.Command = command
|
||||||
maps.Copy(step.Environment, scriptEnv)
|
maps.Copy(step.Environment, scriptEnv)
|
||||||
}
|
}
|
||||||
|
if len(step.Entrypoint) > 0 {
|
||||||
|
container.Command = step.Entrypoint
|
||||||
|
}
|
||||||
|
|
||||||
container.Env = mapToEnvVars(step.Environment)
|
container.Env = mapToEnvVars(step.Environment)
|
||||||
container.Ports = containerPorts(step.Ports)
|
container.Ports = containerPorts(step.Ports)
|
||||||
|
|
|
@ -110,7 +110,7 @@ func TestTinyPod(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "CI_SCRIPT",
|
"name": "CI_SCRIPT",
|
||||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdncmFkbGUgYnVpbGQnCmdyYWRsZSBidWlsZAo="
|
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiAICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdncmFkbGUgYnVpbGQnCmdyYWRsZSBidWlsZAo="
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"resources": {},
|
"resources": {},
|
||||||
|
@ -203,7 +203,7 @@ func TestFullPod(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "CI_SCRIPT",
|
"name": "CI_SCRIPT",
|
||||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdnbyBnZXQnCmdvIGdldAoKZWNobyArICdnbyB0ZXN0JwpnbyB0ZXN0Cg=="
|
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiAICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdnbyBnZXQnCmdvIGdldAoKZWNobyArICdnbyB0ZXN0JwpnbyB0ZXN0Cg=="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "HOME",
|
"name": "HOME",
|
||||||
|
@ -407,3 +407,49 @@ func TestPodPrivilege(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, true, *pod.Spec.SecurityContext.RunAsNonRoot)
|
assert.Equal(t, true, *pod.Spec.SecurityContext.RunAsNonRoot)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestScratchPod(t *testing.T) {
|
||||||
|
expected := `
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"name": "wp-01he8bebctabr3kgk0qj36d2me-0",
|
||||||
|
"namespace": "woodpecker",
|
||||||
|
"creationTimestamp": null,
|
||||||
|
"labels": {
|
||||||
|
"step": "curl-google"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
"containers": [
|
||||||
|
{
|
||||||
|
"name": "wp-01he8bebctabr3kgk0qj36d2me-0",
|
||||||
|
"image": "quay.io/curl/curl",
|
||||||
|
"command": [
|
||||||
|
"/usr/bin/curl",
|
||||||
|
"-v",
|
||||||
|
"google.com"
|
||||||
|
],
|
||||||
|
"resources": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"restartPolicy": "Never"
|
||||||
|
},
|
||||||
|
"status": {}
|
||||||
|
}`
|
||||||
|
|
||||||
|
pod, err := mkPod(&types.Step{
|
||||||
|
Name: "curl-google",
|
||||||
|
Image: "quay.io/curl/curl",
|
||||||
|
Entrypoint: []string{"/usr/bin/curl", "-v", "google.com"},
|
||||||
|
}, &config{
|
||||||
|
Namespace: "woodpecker",
|
||||||
|
}, "wp-01he8bebctabr3kgk0qj36d2me-0", "linux/amd64", BackendOptions{})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
podJSON, err := json.Marshal(pod)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
ja := jsonassert.New(t)
|
||||||
|
t.Log(string(podJSON))
|
||||||
|
ja.Assertf(string(podJSON), expected)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue