From c9d7892ec051a745fbaaca5bda8b70aba5bac14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Budai?= Date: Wed, 26 Aug 2020 11:05:12 +0200 Subject: [PATCH] upload/koji: reorganize run-koji-container script run-koji-container has now two actions: start and stop: - ./run-koji-container.sh start - ./run-koji-container.sh stop The start action starts all containers. When it exits, all containers are started and running in the background. To stop and removethem, use the stop action. This change is needed so we're able to easily use this script also in the CI environment. --- internal/upload/koji/README.md | 8 +- internal/upload/koji/run-koji-container.sh | 95 ++++++++++++++-------- 2 files changed, 68 insertions(+), 35 deletions(-) diff --git a/internal/upload/koji/README.md b/internal/upload/koji/README.md index 683966b95..b6f33f809 100644 --- a/internal/upload/koji/README.md +++ b/internal/upload/koji/README.md @@ -3,7 +3,7 @@ Firstly, you need to start the koji container: ``` -sudo ./internal/upload/koji/run-koji-container.sh +sudo ./internal/upload/koji/run-koji-container.sh start ``` This command starts a kojihub instance available at @@ -20,3 +20,9 @@ go test -v -tags koji_test ./internal/upload/koji The test is run on each PR in the Github CI. See `.github/workflows/tests.yml` for more details. + +To stop and remove the koji container, use the following command: + +``` +sudo ./internal/upload/koji/run-koji-container.sh stop +``` diff --git a/internal/upload/koji/run-koji-container.sh b/internal/upload/koji/run-koji-container.sh index 8b533803f..10f3a7679 100755 --- a/internal/upload/koji/run-koji-container.sh +++ b/internal/upload/koji/run-koji-container.sh @@ -1,6 +1,61 @@ #!/bin/bash set -eu +koji_stop () { + echo "Shutting down containers, please wait..." + + ${CONTAINER_RUNTIME} stop org.osbuild.koji.koji || true + ${CONTAINER_RUNTIME} rm org.osbuild.koji.koji || true + + ${CONTAINER_RUNTIME} stop org.osbuild.koji.postgres || true + ${CONTAINER_RUNTIME} rm org.osbuild.koji.postgres || true + + ${CONTAINER_RUNTIME} network rm -f org.osbuild.koji || true +} + +koji_clean_up_bad_start () { + EXIT_CODE=$? + echo "Start failed, removing containers." + + koji_stop + + exit $EXIT_CODE +} + +koji_start() { + trap koji_clean_up_bad_start EXIT + + ${CONTAINER_RUNTIME} network create org.osbuild.koji + ${CONTAINER_RUNTIME} run -d --name org.osbuild.koji.postgres --network org.osbuild.koji \ + -e POSTGRES_USER=koji \ + -e POSTGRES_PASSWORD=kojipass \ + -e POSTGRES_DB=koji \ + docker.io/library/postgres:12-alpine + + ${CONTAINER_RUNTIME} run -d --name org.osbuild.koji.koji --network org.osbuild.koji \ + -p 8080:80 \ + -e POSTGRES_USER=koji \ + -e POSTGRES_PASSWORD=kojipass \ + -e POSTGRES_DB=koji \ + -e POSTGRES_HOST=org.osbuild.koji.postgres \ + quay.io/osbuild/ghci-koji:v1 + + echo "Containers are running, to stop them use:" + echo "$0 stop" + + trap - EXIT +} + +if [[ $# -ne 1 || ( "$1" != "start" && "$1" != "stop" ) ]]; then + cat <