#!/bin/bash set -euo pipefail SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # FUNCTIONS function title() { echo "----------------------------------------" # Center the text local text="$1" local line_length=40 local text_length=${#text} local padding=$(( (line_length - text_length) / 2 )) printf "%*s%s%*s\n" $padding "" "$text" $padding "" echo "----------------------------------------" } #------------------------------------------------------------------------------------------------ # build the executable title "Building amd64 executable" "${SCRIPT_DIR}/build.sh" amd64 #------------------------------------------------------------------------------------------------ # build the docker image title "Building docker image" docker buildx build --load -t gitea.jde.nz/public/simple-object-storage:test --platform linux/amd64 "${SCRIPT_DIR}" #------------------------------------------------------------------------------------------------ # run the docker container title "Running docker container" export LOCALCONFIG="${SCRIPT_DIR}/.test-docker/config.json" if [ ! -f "${LOCALCONFIG}" ]; then echo "PWD = $(pwd)" echo "SCRIPT_DIR = ${SCRIPT_DIR}" ls -la "${SCRIPT_DIR}" ls -la "${SCRIPT_DIR}/.test-docker" echo "Config file not found: ${LOCALCONFIG}" exit 1 fi COMPOSE_FILE="${SCRIPT_DIR}/.test-docker/compose.yaml" if [ ! -f "${COMPOSE_FILE}" ]; then echo "Compose file not found: ${COMPOSE_FILE}" exit 1 fi #------------------------------------------------------------------------------------------------ title "Running tests" docker compose -f "${COMPOSE_FILE}" up -d "${SCRIPT_DIR}/test.sh" "http://localhost:7703" RESULT=$? docker compose -f "${COMPOSE_FILE}" down docker compose -f "${COMPOSE_FILE}" rm -v exit $RESULT