mirror of
https://github.com/containers/podman.git
synced 2025-06-22 18:08:11 +08:00
Merge pull request #14551 from edsantiago/apiv2_tests_rootless
CI: APIv2 tests: add rootless
This commit is contained in:
@ -431,7 +431,7 @@ unit_test_task:
|
|||||||
|
|
||||||
|
|
||||||
apiv2_test_task:
|
apiv2_test_task:
|
||||||
name: "APIv2 test on $DISTRO_NV"
|
name: "APIv2 test on $DISTRO_NV ($PRIV_NAME)"
|
||||||
alias: apiv2_test
|
alias: apiv2_test
|
||||||
# Docs: ./contrib/cirrus/CIModes.md
|
# Docs: ./contrib/cirrus/CIModes.md
|
||||||
only_if: *not_tag_branch_build_docs
|
only_if: *not_tag_branch_build_docs
|
||||||
@ -445,6 +445,11 @@ apiv2_test_task:
|
|||||||
env:
|
env:
|
||||||
<<: *stdenvars
|
<<: *stdenvars
|
||||||
TEST_FLAVOR: apiv2
|
TEST_FLAVOR: apiv2
|
||||||
|
matrix:
|
||||||
|
- env:
|
||||||
|
PRIV_NAME: root
|
||||||
|
- env:
|
||||||
|
PRIV_NAME: rootless
|
||||||
clone_script: *get_gosrc
|
clone_script: *get_gosrc
|
||||||
setup_script: *setup
|
setup_script: *setup
|
||||||
main_script: *main
|
main_script: *main
|
||||||
|
@ -380,6 +380,17 @@ function start_service() {
|
|||||||
die "Cannot start service on non-localhost ($HOST)"
|
die "Cannot start service on non-localhost ($HOST)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# FIXME: EXPERIMENTAL: 2022-06-13: podman rootless needs a namespace. If
|
||||||
|
# system-service is the first podman command run (as is the case in CI)
|
||||||
|
# this will happen as a fork-exec, where the parent podman creates the
|
||||||
|
# namespace and the child is the server. Then, when stop_service() kills
|
||||||
|
# the parent, the child (server) happily stays alive and ruins subsequent
|
||||||
|
# tests that try to restart service with different settings.
|
||||||
|
# Workaround: run an unshare to get namespaces initialized.
|
||||||
|
if [[ $(id -u) != 0 ]]; then
|
||||||
|
$PODMAN_BIN unshare true
|
||||||
|
fi
|
||||||
|
|
||||||
$PODMAN_BIN \
|
$PODMAN_BIN \
|
||||||
--root $WORKDIR/server_root --syslog=true \
|
--root $WORKDIR/server_root --syslog=true \
|
||||||
system service \
|
system service \
|
||||||
@ -387,6 +398,7 @@ function start_service() {
|
|||||||
tcp:127.0.0.1:$PORT \
|
tcp:127.0.0.1:$PORT \
|
||||||
&> $WORKDIR/server.log &
|
&> $WORKDIR/server.log &
|
||||||
service_pid=$!
|
service_pid=$!
|
||||||
|
echo "# started service, pid $service_pid"
|
||||||
|
|
||||||
wait_for_port $HOST $PORT
|
wait_for_port $HOST $PORT
|
||||||
}
|
}
|
||||||
@ -396,7 +408,14 @@ function stop_service() {
|
|||||||
if [[ -n $service_pid ]]; then
|
if [[ -n $service_pid ]]; then
|
||||||
kill $service_pid || :
|
kill $service_pid || :
|
||||||
wait $service_pid || :
|
wait $service_pid || :
|
||||||
|
echo "# stopped service, pid $service_pid"
|
||||||
fi
|
fi
|
||||||
|
service_pid=
|
||||||
|
|
||||||
|
if { exec 3<> /dev/tcp/$HOST/$PORT; } &>/dev/null; then
|
||||||
|
echo "# WARNING: stop_service: Service still running on port $PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
####################
|
####################
|
||||||
@ -468,6 +487,7 @@ function start_registry() {
|
|||||||
${REGISTRY_IMAGE}
|
${REGISTRY_IMAGE}
|
||||||
|
|
||||||
wait_for_port localhost $REGISTRY_PORT 10
|
wait_for_port localhost $REGISTRY_PORT 10
|
||||||
|
echo "# started registry (auth=$auth) on port $PORT"
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop_registry() {
|
function stop_registry() {
|
||||||
@ -482,6 +502,7 @@ function stop_registry() {
|
|||||||
if [[ "$1" = "--cleanup" ]]; then
|
if [[ "$1" = "--cleanup" ]]; then
|
||||||
podman $OPTS rmi -f -a
|
podman $OPTS rmi -f -a
|
||||||
fi
|
fi
|
||||||
|
echo "# stopped registry on port $PORT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
REGISTRY_PORT=
|
REGISTRY_PORT=
|
||||||
|
Reference in New Issue
Block a user