mirror of
https://github.com/containers/podman
synced 2024-10-21 01:34:37 +00:00
599714d9f2
Previously libpod CI was fairly straight-forward, run unit and integration tests in a standard set of 3 VMs. Off on the side was a single special case of running tests as an ordinary user. There is a desire to stop using the PAPR system to support testing inside of a container. Since having two special cases potentially invites more down the road, make provisions to handle them more gracefully. This commit introduces an environment variable: ``$SPECIALMODE``. It's value has the following meanings within the CI scripts: Mode 'none': Nothing special, business as usual (default) Mode 'rootless': Rootless testing Mode 'in_podman': Build container, run integration tests in it. This will make adding additional special-cases later easier, as well as extending the special cases in a Matrix across multiple OS's. Signed-off-by: Chris Evich <cevich@redhat.com>
69 lines
1.7 KiB
Bash
Executable file
69 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
source $(dirname $0)/lib.sh
|
|
|
|
req_env_var "
|
|
GOSRC $GOSRC
|
|
SCRIPT_BASE $SCRIPT_BASE
|
|
OS_RELEASE_ID $OS_RELEASE_ID
|
|
OS_RELEASE_VER $OS_RELEASE_VER
|
|
CONTAINER_RUNTIME $CONTAINER_RUNTIME
|
|
"
|
|
|
|
exit_handler() {
|
|
set +ex
|
|
record_timestamp "integration test end"
|
|
}
|
|
trap exit_handler EXIT
|
|
|
|
record_timestamp "integration test start"
|
|
|
|
cd "$GOSRC"
|
|
|
|
if [[ "$SPECIALMODE" == "in_podman" ]]
|
|
then
|
|
set -x
|
|
${CONTAINER_RUNTIME} run --rm --privileged --net=host \
|
|
-v $GOSRC:$GOSRC:Z \
|
|
--workdir $GOSRC \
|
|
-e "CGROUP_MANAGER=cgroupfs" \
|
|
-e "STORAGE_OPTIONS=--storage-driver=vfs" \
|
|
-e "CRIO_ROOT=$GOSRC" \
|
|
-e "PODMAN_BINARY=/usr/bin/podman" \
|
|
-e "CONMON_BINARY=/usr/libexec/podman/conmon" \
|
|
-e "DIST=$OS_RELEASE_ID" \
|
|
-e "CONTAINER_RUNTIME=$CONTAINER_RUNTIME" \
|
|
${OS_RELEASE_ID}podmanbuild bash $GOSRC/$SCRIPT_BASE/container_test.sh -b -i -t
|
|
|
|
exit $?
|
|
elif [[ "$SPECIALMODE" == "rootless" ]]
|
|
then
|
|
req_env_var "ROOTLESS_USER $ROOTLESS_USER"
|
|
set -x
|
|
ssh $ROOTLESS_USER@localhost \
|
|
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o CheckHostIP=no \
|
|
$GOSRC/$SCRIPT_BASE/rootless_test.sh
|
|
exit $?
|
|
else
|
|
set -x
|
|
make
|
|
make install PREFIX=/usr ETCDIR=/etc
|
|
make test-binaries
|
|
clean_env
|
|
|
|
case "${OS_RELEASE_ID}-${OS_RELEASE_VER}" in
|
|
ubuntu-18) ;;
|
|
fedora-29) ;& # Continue to the next item
|
|
fedora-28) ;&
|
|
centos-7) ;&
|
|
rhel-7)
|
|
make podman-remote
|
|
install bin/podman-remote /usr/bin
|
|
;;
|
|
*) bad_os_id_ver ;;
|
|
esac
|
|
make localintegration
|
|
exit $?
|
|
fi
|