2018-06-11 14:55:51 +08:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
|
|
|
|
load helpers
|
|
|
|
|
2018-09-03 19:20:52 +08:00
|
|
|
@test "commit-flags-order-verification" {
|
2019-04-02 05:56:29 +08:00
|
|
|
run_buildah 1 commit cnt1 --tls-verify
|
2018-09-03 19:20:52 +08:00
|
|
|
check_options_flag_err "--tls-verify"
|
|
|
|
|
2019-04-02 05:56:29 +08:00
|
|
|
run_buildah 1 commit cnt1 -q
|
2018-09-03 19:20:52 +08:00
|
|
|
check_options_flag_err "-q"
|
|
|
|
|
2019-04-02 05:56:29 +08:00
|
|
|
run_buildah 1 commit cnt1 -f=docker --quiet --creds=bla:bla
|
2018-09-03 19:20:52 +08:00
|
|
|
check_options_flag_err "-f=docker"
|
|
|
|
|
2019-04-02 05:56:29 +08:00
|
|
|
run_buildah 1 commit cnt1 --creds=bla:bla
|
2018-09-03 19:20:52 +08:00
|
|
|
check_options_flag_err "--creds=bla:bla"
|
|
|
|
}
|
|
|
|
|
2018-06-11 14:55:51 +08:00
|
|
|
@test "commit" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json $cid alpine-image
|
2019-04-02 05:56:29 +08:00
|
|
|
run_buildah images alpine-image
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah rm $cid
|
|
|
|
buildah rmi -a
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "commit format test" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json $cid alpine-image-oci
|
2018-06-06 22:41:40 +08:00
|
|
|
buildah commit --format docker --disable-compression=false --signature-policy ${TESTSDIR}/policy.json $cid alpine-image-docker
|
2018-06-11 14:55:51 +08:00
|
|
|
|
2019-12-12 02:28:27 +08:00
|
|
|
buildah inspect --type=image --format '{{.Manifest}}' alpine-image-oci | grep "application/vnd.oci.image.layer.v1.tar"
|
|
|
|
buildah inspect --type=image --format '{{.Manifest}}' alpine-image-docker | grep "application/vnd.docker.image.rootfs.diff.tar.gzip"
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah rm $cid
|
|
|
|
buildah rmi -a
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "commit quiet test" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-12-12 02:28:27 +08:00
|
|
|
run_buildah commit --iidfile /dev/null --signature-policy ${TESTSDIR}/policy.json -q $cid alpine-image
|
2019-04-05 23:59:54 +08:00
|
|
|
expect_output ""
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah rm $cid
|
|
|
|
buildah rmi -a
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "commit rm test" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json --rm $cid alpine-image
|
2019-12-12 02:28:27 +08:00
|
|
|
run_buildah 1 rm $cid
|
2019-04-05 23:59:54 +08:00
|
|
|
expect_output --substring "error removing container \"alpine-working-container\": error reading build container: container not known"
|
2018-06-11 14:55:51 +08:00
|
|
|
buildah rmi -a
|
|
|
|
}
|
2018-06-22 23:20:02 +08:00
|
|
|
|
|
|
|
@test "commit-alternate-storage" {
|
|
|
|
echo FROM
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json openshift/hello-openshift
|
|
|
|
cid=$output
|
2018-06-22 23:20:02 +08:00
|
|
|
echo COMMIT
|
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json $cid "containers-storage:[vfs@${TESTDIR}/root2+${TESTDIR}/runroot2]newimage"
|
|
|
|
echo FROM
|
2018-07-25 02:08:04 +08:00
|
|
|
buildah --storage-driver vfs --root ${TESTDIR}/root2 --runroot ${TESTDIR}/runroot2 from --signature-policy ${TESTSDIR}/policy.json newimage
|
2018-06-22 23:20:02 +08:00
|
|
|
}
|
2018-08-22 04:33:36 +08:00
|
|
|
|
|
|
|
@test "commit-rejected-name" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-12-12 02:28:27 +08:00
|
|
|
run_buildah 1 commit --signature-policy ${TESTSDIR}/policy.json $cid ThisNameShouldBeRejected
|
2019-04-05 23:59:54 +08:00
|
|
|
expect_output --substring "must be lower"
|
2018-08-22 04:33:36 +08:00
|
|
|
}
|
2019-04-04 02:57:55 +08:00
|
|
|
|
|
|
|
@test "commit-no-empty-created-by" {
|
2019-04-05 23:59:54 +08:00
|
|
|
if ! python3 -c 'import json, sys' 2> /dev/null ; then
|
2019-04-04 02:57:55 +08:00
|
|
|
skip "python interpreter with json module not found"
|
|
|
|
fi
|
|
|
|
target=new-image
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-04-04 02:57:55 +08:00
|
|
|
|
2019-12-12 02:28:27 +08:00
|
|
|
run_buildah config --created-by "untracked actions" $cid
|
|
|
|
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid ${target}
|
|
|
|
run_buildah inspect --format '{{.Config}}' ${target}
|
2019-04-04 02:57:55 +08:00
|
|
|
config="$output"
|
2019-04-05 23:59:54 +08:00
|
|
|
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
2019-04-04 02:57:55 +08:00
|
|
|
echo "$output"
|
|
|
|
[ "${status}" -eq 0 ]
|
|
|
|
[ "$output" == "untracked actions" ]
|
|
|
|
|
2019-12-12 02:28:27 +08:00
|
|
|
run_buildah config --created-by "" $cid
|
|
|
|
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid ${target}
|
|
|
|
run_buildah inspect --format '{{.Config}}' ${target}
|
2019-04-04 02:57:55 +08:00
|
|
|
config="$output"
|
2019-04-05 23:59:54 +08:00
|
|
|
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
2019-04-04 02:57:55 +08:00
|
|
|
echo "$output"
|
|
|
|
[ "${status}" -eq 0 ]
|
|
|
|
[ "$output" == "/bin/sh" ]
|
|
|
|
}
|
2019-03-21 01:06:29 +08:00
|
|
|
|
|
|
|
@test "commit-no-name" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull=false --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-03-21 01:06:29 +08:00
|
|
|
run_buildah commit --signature-policy ${TESTSDIR}/policy.json $cid
|
|
|
|
}
|
2019-11-06 11:57:38 +08:00
|
|
|
|
|
|
|
@test "commit should fail with nonexist authfile" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-11-06 11:57:38 +08:00
|
|
|
run_buildah 1 commit --authfile /tmp/nonexist --signature-policy ${TESTSDIR}/policy.json $cid alpine-image
|
|
|
|
buildah rm $cid
|
|
|
|
buildah rmi -a
|
|
|
|
}
|
2019-11-13 00:50:21 +08:00
|
|
|
|
|
|
|
@test "commit-builder-identity" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
2019-11-13 00:50:21 +08:00
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json $cid alpine-image
|
|
|
|
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah --version | awk '{ print $3 }'
|
|
|
|
buildah_version=$output
|
|
|
|
run_buildah inspect --format '{{ index .Docker.Config.Labels "io.buildah.version"}}' alpine-image
|
|
|
|
version=$output
|
2019-11-13 00:50:21 +08:00
|
|
|
|
|
|
|
[ "$version" == "$buildah_version" ]
|
|
|
|
buildah rm $cid
|
|
|
|
buildah rmi -f alpine-image
|
|
|
|
}
|
2019-11-20 04:23:14 +08:00
|
|
|
|
|
|
|
@test "commit-parent-id" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
|
|
|
run_buildah inspect --format '{{.FromImageID}}' $cid
|
|
|
|
iid=$output
|
2019-11-20 04:23:14 +08:00
|
|
|
echo image ID: "$iid"
|
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json --format docker $cid alpine-image
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah inspect --format '{{.Docker.Parent}}' alpine-image
|
|
|
|
parentid=$output
|
2019-11-20 04:23:14 +08:00
|
|
|
echo parent ID: "$parentid"
|
|
|
|
[ "$parentid" = sha256:"$iid" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "commit-container-id" {
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah from --quiet --pull --signature-policy ${TESTSDIR}/policy.json alpine
|
|
|
|
cid=$output
|
|
|
|
run_buildah containers --format '{{.ContainerID}}:{{.ContainerName}}' | grep :"$cid"'$' | cut -f1 -d:
|
|
|
|
cid=$output
|
2019-11-20 04:23:14 +08:00
|
|
|
echo container ID: "$cid"
|
|
|
|
buildah commit --signature-policy ${TESTSDIR}/policy.json --format docker $cid alpine-image
|
2019-12-12 03:11:08 +08:00
|
|
|
run_buildah inspect --format '{{.Docker.Container}}' alpine-image
|
|
|
|
containerid=$output
|
2019-11-20 04:23:14 +08:00
|
|
|
echo recorded container ID: "$containerid"
|
|
|
|
[ "$containerid" = "$cid" ]
|
2019-11-06 18:20:33 +08:00
|
|
|
}
|
2019-10-28 16:25:42 +08:00
|
|
|
|
|
|
|
@test "commit with name" {
|
2019-12-04 02:18:24 +08:00
|
|
|
run_buildah from --quiet --signature-policy ${TESTSDIR}/policy.json --name busyboxc busybox
|
|
|
|
expect_output "busyboxc"
|
|
|
|
|
|
|
|
# Commit with a new name
|
|
|
|
newname="commitbyname/busyboxname"
|
|
|
|
run_buildah commit --signature-policy ${TESTSDIR}/policy.json busyboxc $newname
|
|
|
|
|
|
|
|
run_buildah from --signature-policy ${TESTSDIR}/policy.json localhost/$newname
|
|
|
|
expect_output "busyboxname-working-container"
|
|
|
|
|
|
|
|
cname=$output
|
|
|
|
run_buildah inspect --format '{{.FromImage}}' $cname
|
|
|
|
expect_output "localhost/$newname:latest"
|
|
|
|
|
|
|
|
buildah rm busyboxc $cname
|
|
|
|
buildah rmi $newname
|
2019-10-28 16:25:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@test "commit to docker-distribution" {
|
|
|
|
buildah from --signature-policy ${TESTSDIR}/policy.json --name busyboxc busybox
|
|
|
|
run_buildah commit --signature-policy ${TESTSDIR}/policy.json --tls-verify=false --creds testuser:testpassword busyboxc docker://localhost:5000/commit/busybox
|
|
|
|
run_buildah from --signature-policy ${TESTSDIR}/policy.json --name fromdocker --tls-verify=false --creds testuser:testpassword docker://localhost:5000/commit/busybox
|
|
|
|
buildah rm busyboxc fromdocker
|
2019-11-20 04:23:14 +08:00
|
|
|
}
|