fix: don't overwrite with empty cmd/entrypoint (#1076)

Co-authored-by: ChristopherHX <christopher.homberger@web.de>

Signed-off-by: Ryan <me@hackerc.at>

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
Ryan 2022-03-29 20:00:52 +02:00 committed by GitHub
parent 5f673cbb6d
commit 24422bf4e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 3 deletions

View File

@ -327,14 +327,20 @@ func (cr *containerReference) create(capAdd []string, capDrop []string) common.E
config := &container.Config{
Image: input.Image,
Cmd: input.Cmd,
Entrypoint: input.Entrypoint,
WorkingDir: input.WorkingDir,
Env: input.Env,
Tty: isTerminal,
Hostname: input.Hostname,
}
if len(input.Cmd) != 0 {
config.Cmd = input.Cmd
}
if len(input.Entrypoint) != 0 {
config.Entrypoint = input.Entrypoint
}
mounts := make([]mount.Mount, 0)
for mountSource, mountTarget := range input.Mounts {
mounts = append(mounts, mount.Mount{

View File

@ -58,7 +58,12 @@ func (sd *stepDocker) runUsesContainer() common.Executor {
if err != nil {
return err
}
entrypoint := strings.Fields(eval.Interpolate(step.With["entrypoint"]))
var entrypoint []string
if entry := eval.Interpolate(step.With["entrypoint"]); entry != "" {
entrypoint = []string{entry}
}
stepContainer := sd.newStepContainer(ctx, image, cmd, entrypoint)
return common.NewPipelineExecutor(

View File

@ -9,3 +9,15 @@ jobs:
with:
somekey: somevalue
args: echo ${INPUT_SOMEKEY} | grep somevalue
- uses: docker://node:16-buster-slim
with:
args: -v
- uses: docker://node:16-buster-slim
with:
entrypoint: /bin/sh
args: -c -- uname -a
- uses: docker://node:16-buster-slim
with:
entrypoint: /bin/sh
args: -c 'uname -a'