getting things ready for release

This commit is contained in:
2026-04-27 05:29:26 +02:00
parent cdaf469a6d
commit 7815072d1e
21 changed files with 369 additions and 77 deletions

102
build.bash Normal file
View File

@@ -0,0 +1,102 @@
#!/bin/bash
# f0ckm build script - compatible version
# Targets: master, dev
# Detect docker compose command
if docker compose version >/dev/null 2>&1; then
DOCKER_COMPOSE="docker compose"
elif docker-compose version >/dev/null 2>&1; then
DOCKER_COMPOSE="docker-compose"
else
echo "Error: Neither 'docker compose' nor 'docker-compose' found"
exit 1
fi
# Parse arguments
TARGET="master"
CACHE_FLAG=""
BRANCH_TARGET=""
for arg in "$@"; do
case $arg in
master|dev|stg)
TARGET=$arg
;;
--no-cache)
CACHE_FLAG="--no-cache"
;;
*)
if [ -z "$BRANCH_TARGET" ]; then
BRANCH_TARGET=$arg
fi
;;
esac
done
# Check if we are in a git repo
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
echo "Error: not a git repository"
exit 1
fi
# Set Image name and branch defaults
IMAGE_NAME="f0ckm"
if [ "$TARGET" == "master" ]; then
echo "--- PRODUCTION DEPLOYMENT (master) ---"
BRANCH_TARGET="master"
elif [ "$TARGET" == "stg" ]; then
echo "--- STAGING DEPLOYMENT ---"
BRANCH_TARGET="dev"
else
echo "--- LOCAL DEVELOPMENT (dev) ---"
BRANCH_TARGET="dev"
fi
# Checkout branch
echo "Ensuring branch: ${BRANCH_TARGET}"
git checkout "${BRANCH_TARGET}" 2>/dev/null
# Pull latest changes
echo "Pulling latest changes for branch: $(git rev-parse --abbrev-ref HEAD)"
git pull
# Get git short revision
REV=$(git rev-parse --short HEAD)
TAG="f0ckm-${TARGET}-${REV}"
echo "Building image: ${IMAGE_NAME}:${TAG} for environment: ${TARGET} (Cache: ${CACHE_FLAG:-enabled})"
# Build the image
docker build $CACHE_FLAG --build-arg GIT_HASH=${TAG} -f Dockerfile -t ${IMAGE_NAME}:${TAG} .
# Also tag it as latest
echo "Tagging as ${IMAGE_NAME}:latest"
docker tag ${IMAGE_NAME}:${TAG} ${IMAGE_NAME}:latest
# Update .env
if grep -q "^F0CKM_TAG=" .env; then
sed -i "s/^F0CKM_TAG=.*/F0CKM_TAG=${TAG}/" .env
else
[ -s .env ] && [ -n "$(tail -c 1 .env)" ] && echo "" >> .env
echo "F0CKM_TAG=${TAG}" >> .env
fi
if grep -q "^F0CKM_IMAGE=" .env; then
sed -i "s|^F0CKM_IMAGE=.*|F0CKM_IMAGE=${IMAGE_NAME}|" .env
else
[ -s .env ] && [ -n "$(tail -c 1 .env)" ] && echo "" >> .env
echo "F0CKM_IMAGE=${IMAGE_NAME}" >> .env
fi
# Deployment
echo "Restarting services with $DOCKER_COMPOSE..."
$DOCKER_COMPOSE down
$DOCKER_COMPOSE up -d
# Cleanup
echo "Cleaning up old docker resources..."
docker system prune -af
echo "Successfully updated ${TARGET} with tag ${TAG}"