47 lines
1.4 KiB
Bash
47 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
# scripts/docker_push.sh
|
|
# Build and push Manual Slop image to Gitea container registry.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
CREDS_FILE="$PROJECT_ROOT/credentials.toml"
|
|
|
|
if [ ! -f "$CREDS_FILE" ]; then
|
|
echo "Error: credentials.toml not found at $CREDS_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
CREDS_JSON=$(uv run python -c "
|
|
import tomllib
|
|
creds = tomllib.load(open('$CREDS_FILE', 'rb'))
|
|
g = creds.get('gitea', {})
|
|
print(g.get('registry_url', '') + '|' + g.get('username', '') + '|' + g.get('token', ''))
|
|
")
|
|
|
|
REGISTRY_URL=$(echo "$CREDS_JSON" | cut -d'|' -f1)
|
|
GITEA_USER=$(echo "$CREDS_JSON" | cut -d'|' -f2)
|
|
GITEA_TOKEN=$(echo "$CREDS_JSON" | cut -d'|' -f3)
|
|
|
|
if [ -z "$REGISTRY_URL" ] || [ -z "$GITEA_USER" ] || [ -z "$GITEA_TOKEN" ]; then
|
|
echo "Error: gitea credentials incomplete in credentials.toml"
|
|
echo "Required: registry_url, username, token"
|
|
exit 1
|
|
fi
|
|
|
|
IMAGE_NAME="manual_slop:latest"
|
|
FULL_TAG="${REGISTRY_URL}/${GITEA_USER}/${IMAGE_NAME}"
|
|
|
|
echo "Building Docker image..."
|
|
docker build -t "$IMAGE_NAME" "$PROJECT_ROOT"
|
|
|
|
echo "Tagging for Gitea registry: $FULL_TAG"
|
|
docker tag "$IMAGE_NAME" "$FULL_TAG"
|
|
|
|
echo "Logging in to Gitea registry..."
|
|
echo "$GITEA_TOKEN" | docker login "$REGISTRY_URL" -u "$GITEA_USER" --password-stdin
|
|
|
|
echo "Pushing to Gitea registry..."
|
|
docker push "$FULL_TAG"
|
|
|
|
echo "Done! Image available at: $FULL_TAG" |