75 lines
2.2 KiB
Bash
Executable File
75 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Exit on errors
|
|
set -e
|
|
|
|
# Configuration (environment variables)
|
|
BUILD_DIR=".tmp_eleventy_build" # Temporary directory for the build
|
|
PRODUCTION_SERVER="${PRODUCTION_SERVER:-}" # Ensure this is set in the environment
|
|
PRODUCTION_PATH="${PRODUCTION_PATH:-}" # Ensure this is set in the environment
|
|
PATH_PREFIX="${PATH_PREFIX:-}" # Ensure this is set in the environment
|
|
SITE_URL="${SITE_URL:-}" # Ensure this is set in the environment
|
|
CDN_URL="${CDN_URL:-}" # Ensure this is set in the environment
|
|
FOUNDRY_BASE_URL="${FOUNDRY_BASE_URL:-}" # Ensure this is set in the environment
|
|
|
|
# Function to clean up the temporary directory
|
|
cleanup() {
|
|
echo "Cleaning up temporary files..."
|
|
rm -rf "$BUILD_DIR"
|
|
}
|
|
|
|
# Set trap to clean up on script exit or interruption
|
|
trap cleanup EXIT
|
|
|
|
# Function to check environment variables
|
|
check_env() {
|
|
if [[ -z "$PRODUCTION_SERVER" ]]; then
|
|
echo "Error: PRODUCTION_SERVER is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$PRODUCTION_PATH" ]]; then
|
|
echo "Error: PRODUCTION_PATH is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$PATH_PREFIX" ]]; then
|
|
echo "Error: PATH_PREFIX is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$SITE_URL" ]]; then
|
|
echo "Error: SITE_URL is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$CDN_URL" ]]; then
|
|
echo "Error: CDN_URL is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$FOUNDRY_BASE_URL" ]]; then
|
|
echo "Error: FOUNDRY_BASE_URL is not set. Please set it and try again."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Check environment variables
|
|
check_env
|
|
|
|
# Step 1: Build the site to a temporary directory
|
|
echo "Building the site..."
|
|
npx @11ty/eleventy --output="$BUILD_DIR"
|
|
|
|
# Step 2: Deploy using rsync
|
|
echo "Deploying to production..."
|
|
rsync -avz --delete "$BUILD_DIR/" "$PRODUCTION_SERVER:$PRODUCTION_PATH"
|
|
|
|
# Step 3: Fix permissions on the remote server
|
|
echo "Fixing permissions on the server..."
|
|
ssh "$PRODUCTION_SERVER" << EOF
|
|
find "$PRODUCTION_PATH" -type f -exec chmod 665 {} \; # Set permissions for files
|
|
find "$PRODUCTION_PATH" -type d -exec chmod 775 {} \; # Set permissions for directories
|
|
EOF
|
|
|
|
echo "Deployment complete!" |