66 lines
2 KiB
Bash
Executable file
66 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Run checked-out Agama in a podman container.
|
|
# This is meant to be run from a working copy of the git repo.
|
|
# It uses the systemsmanagement:Agama:Devel/agama-testing image as
|
|
# a platform and runs /setup.sh
|
|
#
|
|
# Details:
|
|
# - container name: agama
|
|
# - SSL port is exposed at https://localhost:10443 so that web UI works
|
|
# - 'WITH_RUBY_DBUS=1 $0' will prefer ../ruby-dbus to any ruby-dbus.gem
|
|
|
|
set -x
|
|
set -eu
|
|
|
|
# https://build.opensuse.org/package/show/systemsmanagement:Agama:Devel/agama-testing
|
|
CIMAGE=registry.opensuse.org/systemsmanagement/agama/devel/containers/opensuse/agama-testing:latest
|
|
# rename this if you test multiple things
|
|
CNAME=agama
|
|
|
|
test -f service/agama-yast.gemspec || { echo "You should run this from a git checkout of Agama"; exit 1; }
|
|
|
|
# destroy the previous instance, can fail if there is no previous instance
|
|
podman stop ${CNAME?} || : no problem if there was nothing to stop
|
|
podman rm ${CNAME?} || : no problem if there was nothing to remove
|
|
|
|
# Update our image
|
|
podman pull ${CIMAGE?}
|
|
|
|
# Optionally use a git version of ruby-dbus
|
|
# because Agama pushes its limits so it's better
|
|
# to set up for easy testing
|
|
MORE_VOLUMES=()
|
|
if [ "${WITH_RUBY_DBUS-}" = 1 ]; then
|
|
MORE_VOLUMES=(-v ../ruby-dbus:/checkout-ruby-dbus)
|
|
fi
|
|
|
|
podman run --name ${CNAME?} \
|
|
--privileged --detach \
|
|
-v .:/checkout \
|
|
${MORE_VOLUMES[@]} \
|
|
-p 10443:443 \
|
|
${CIMAGE?}
|
|
|
|
# shortcut for the following
|
|
CEXEC="podman exec ${CNAME?} bash -c"
|
|
|
|
# Set it up
|
|
# but continue in case of failure, the remaining steps (password and shell)
|
|
# are useful even then
|
|
${CEXEC?} "cd /checkout && ./setup.sh || true"
|
|
|
|
echo "Set the Agama (root) password:"
|
|
podman exec -it ${CNAME?} passwd
|
|
|
|
set +x
|
|
echo "agama-web-server forwarded to https://localhost:10443/"
|
|
echo "To attach again to the Agama container run:"
|
|
echo " podman exec --tty --interactive ${CNAME?} bash"
|
|
echo "To stop and remove the Agama container run:"
|
|
echo " podman stop ${CNAME?}"
|
|
echo " podman rm ${CNAME?}"
|
|
set -x
|
|
|
|
# Interactive shell in the container
|
|
podman exec --tty --interactive ${CNAME?} bash
|
|
|