From 0d246b1c111143351fd264a0918f0d04b91008fd Mon Sep 17 00:00:00 2001 From: Thomas Woerner <twoerner@redhat.com> Date: Wed, 31 Jul 2024 15:33:19 +0200 Subject: [PATCH] infra/image/build.sh: Fail if deployment failed or podman is missing If the deployment was enabled and failed, the script still continued without failing. If podman was missing it failed without a proper error. The script now fails and does not enable the services and also does not commit after the failed deployment. Also is fails if podman is missing. --- infra/image/build.sh | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/infra/image/build.sh b/infra/image/build.sh index 4f77b84..b160217 100755 --- a/infra/image/build.sh +++ b/infra/image/build.sh @@ -56,6 +56,8 @@ distro=${1:-} [ -f "${BASEDIR}/dockerfile/${distro}" ] \ || die "${distro} is not a valid distro target.\nUse one of: $(valid_distro)" +[ -n "$(command -v "podman")" ] || die "podman is required." + if [ "${deploy_server}" == "Y" ] then [ -n "$(command -v "ansible-playbook")" ] || die "ansible-playbook is required to install FreeIPA." @@ -109,23 +111,32 @@ echo if [ "${deploy_server}" == "Y" ] then + deployed=false + log info "= Starting ${name} =" [ "${container_state}" == "running" ] || podman start "${name}" echo log info "= Deploying IPA =" - ansible-playbook -i "${inventory_file}" "${deploy_playbook}" + if ansible-playbook -i "${inventory_file}" "${deploy_playbook}" + then + deployed=true + fi echo - log info "= Enabling additional services =" - podman exec "${name}" systemctl enable fixnet - podman exec "${name}" systemctl enable fixipaip - echo + if $deployed; then + log info "= Enabling additional services =" + podman exec "${name}" systemctl enable fixnet + podman exec "${name}" systemctl enable fixipaip + echo + fi log info "= Stopping container ${name} =" podman stop "${name}" echo + $deployed || die "Deployment failed" + log info "= Committing \"${quayname}:${server_tag}\" =" podman commit "${name}" "${quayname}:${server_tag}" echo -- GitLab