diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2021-03-04 15:11:18 -0500 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2021-03-07 08:08:32 -0500 |
commit | 9e75cafd5cd9b530d8fadb0a25b9c99836d80e40 (patch) | |
tree | 68c11ddb8bf43a3eda58ee798d0d0a1950e9e343 /test/system/070-build.bats | |
parent | 326f3eda313606bcf28f413b5e6cdbd02ce2586b (diff) | |
download | podman-9e75cafd5cd9b530d8fadb0a25b9c99836d80e40.tar.gz podman-9e75cafd5cd9b530d8fadb0a25b9c99836d80e40.tar.bz2 podman-9e75cafd5cd9b530d8fadb0a25b9c99836d80e40.zip |
build-arg
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'test/system/070-build.bats')
-rw-r--r-- | test/system/070-build.bats | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/system/070-build.bats b/test/system/070-build.bats index 1a89800a5..d413b0c10 100644 --- a/test/system/070-build.bats +++ b/test/system/070-build.bats @@ -191,11 +191,17 @@ EOF https_proxy=https-proxy-in-env-file EOF + # Build args: one explicit (foo=bar), one implicit (foo) + local arg_implicit_value=implicit_$(random_string 15) + local arg_explicit_value=explicit_$(random_string 15) + # NOTE: it's important to not create the workdir. # Podman will make sure to create a missing workdir # if needed. See #9040. cat >$tmpdir/Containerfile <<EOF FROM $IMAGE +ARG arg_explicit +ARG arg_implicit LABEL $label_name=$label_value WORKDIR $workdir @@ -220,20 +226,44 @@ RUN chown 2:3 /bin/mydefaultcmd RUN $CAT_SECRET +RUN echo explicit-build-arg=\$arg_explicit +RUN echo implicit-build-arg=\$arg_implicit + CMD ["/bin/mydefaultcmd","$s_echo"] RUN cat /etc/resolv.conf EOF + # The goal is to test that a missing value will be inherited from + # environment - but that can't work with remote, so for simplicity + # just make it explicit in that case too. + local build_arg_implicit="--build-arg arg_implicit" + if is_remote; then + build_arg_implicit+="=$arg_implicit_value" + fi + # cd to the dir, so we test relative paths (important for podman-remote) cd $PODMAN_TMPDIR + export arg_explicit="THIS SHOULD BE OVERRIDDEN BY COMMAND LINE!" + export arg_implicit=${arg_implicit_value} run_podman ${MOUNTS_CONF} build \ + --build-arg arg_explicit=${arg_explicit_value} \ + $build_arg_implicit \ --dns-search $nosuchdomain \ -t build_test -f build-test/Containerfile build-test local iid="${lines[-1]}" + if [[ $output =~ missing.*build.argument ]]; then + die "podman did not see the given --build-arg(s)" + fi + # Make sure 'podman build' had the secret mounted is "$output" ".*$secret_contents.*" "podman build has /run/secrets mounted" + # --build-arg should be set, both via 'foo=bar' and via just 'foo' ($foo) + is "$output" ".*explicit-build-arg=${arg_explicit_value}" \ + "--build-arg arg_explicit=explicit-value works" + is "$output" ".*implicit-build-arg=${arg_implicit_value}" \ + "--build-arg arg_implicit works (inheriting from environment)" is "$output" ".*search $nosuchdomain" \ "--dns-search added to /etc/resolv.conf" |