42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
version="${1:-}"
|
|
if [[ -z "$version" ]]; then
|
|
echo "Usage: $0 <version>"
|
|
exit 1
|
|
fi
|
|
|
|
script_dir="$(cd "$(dirname "$0")" && pwd)"
|
|
project_dir="$(cd "$script_dir/.." && pwd)"
|
|
release_dir="$project_dir/release"
|
|
bundle_dir="$release_dir/screen-share-$version"
|
|
archive="$release_dir/screen-share-$version.tar.gz"
|
|
|
|
if [[ -e "$bundle_dir" || -e "$archive" ]]; then
|
|
echo "Release already exists: $bundle_dir or $archive"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$bundle_dir/infra/livekit" "$bundle_dir/infra/nginx" "$bundle_dir/docs"
|
|
|
|
docker build -t "screenshare-api:$version" "$project_dir/apps/ScreenShareApi"
|
|
docker build -t "screenshare-web:$version" "$project_dir/apps/ScreenShareWeb"
|
|
docker pull postgres:16-alpine
|
|
docker pull livekit/livekit-server:v1.9.10
|
|
|
|
docker save + -o "$bundle_dir/images.tar" + "screenshare-api:$version" + "screenshare-web:$version" + postgres:16-alpine + livekit/livekit-server:v1.9.10
|
|
|
|
cp "$project_dir/docker-compose.yml" "$bundle_dir/"
|
|
cp "$project_dir/.env.example" "$bundle_dir/"
|
|
cp "$project_dir/infra/livekit/livekit.yaml" "$bundle_dir/infra/livekit/"
|
|
cp "$project_dir/infra/nginx/screenshare.conf.example" "$bundle_dir/infra/nginx/"
|
|
cp "$project_dir/docs/SERVER_DEPLOYMENT.md" "$bundle_dir/docs/"
|
|
|
|
cat > "$bundle_dir/RELEASE_VERSION" <<EOF
|
|
$version
|
|
EOF
|
|
|
|
tar -C "$release_dir" -czf "$archive" "screen-share-$version"
|
|
echo "Created offline deployment archive: $archive"
|