build system updates
This commit is contained in:
41
scripts/build-and-push.sh
Executable file
41
scripts/build-and-push.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Configuration
|
||||
REGISTRY="git.sschuhmann.de/sschuhmann/rehearshalhub"
|
||||
COMPONENTS=("api" "web" "worker" "watcher")
|
||||
|
||||
# Get version from git tag
|
||||
get_version() {
|
||||
local tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
||||
if [[ -z "$tag" ]]; then
|
||||
echo "Error: No git tags found. Please create a tag first (e.g., git tag v1.0.0)" >&2
|
||||
exit 1
|
||||
fi
|
||||
# Remove v prefix if present for semantic versioning
|
||||
echo "${tag#v}"
|
||||
}
|
||||
|
||||
# Main build and push function
|
||||
build_and_push() {
|
||||
local version=$1
|
||||
echo "Building and pushing version: $version"
|
||||
|
||||
for component in "${COMPONENTS[@]}"; do
|
||||
echo "Building $component..."
|
||||
docker build -t "$REGISTRY/$component-$version" -f "$component/Dockerfile" --target production "$component"
|
||||
|
||||
echo "Pushing $component-$version..."
|
||||
docker push "$REGISTRY/$component-$version"
|
||||
|
||||
# Also tag as latest for convenience
|
||||
docker tag "$REGISTRY/$component-$version" "$REGISTRY/$component-latest"
|
||||
docker push "$REGISTRY/$component-latest"
|
||||
done
|
||||
|
||||
echo "All components built and pushed successfully!"
|
||||
}
|
||||
|
||||
# Execute
|
||||
VERSION=$(get_version)
|
||||
build_and_push "$VERSION"
|
||||
Reference in New Issue
Block a user