Files
mwitnessing/_deploy/entrypoint.sh

49 lines
1.8 KiB
Bash

#!/bin/sh
if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then
# Install necessary packages
apk add git nano rsync
echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')"
# Create a temporary directory for the new clone
rm -rf /tmp/clone
mkdir /tmp/clone
# Clone the repository
git clone -b ${GIT_BRANCH:-main} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/mwitnessing.git /tmp/clone || exit 1
# Synchronize all files except package.json and package-lock.json to /app. alo exclude '/app/public/content/uploads' to avoid deleting uploaded files
rsync -av --delete --exclude 'package.json' --exclude 'package-lock.json' --exclude '/app/public/content/uploads'
/tmp/clone/ /app/ || echo "Rsync failed: Issue synchronizing files"
# Determine if package.json or package-lock.json has changed
PACKAGE_CHANGE=0
if ! cmp -s /tmp/clone/package.json /app/package.json || ! cmp -s /tmp/clone/package-lock.json /app/package-lock.json; then
PACKAGE_CHANGE=1
fi
# If package.json or package-lock.json has changed, copy them and reinstall node_modules
if [ "$PACKAGE_CHANGE" -eq 1 ]; then
echo "Package files have changed. Updating packages..."
rsync -av /tmp/clone/package.json /app/package.json || echo "Rsync failed: Issue copying package.json"
rsync -av /tmp/clone/package-lock.json /app/package-lock.json || echo "Rsync failed: Issue copying package-lock.json"
rm -rf /app/node_modules
yes | npx prisma generate
else
echo "Package files have not changed. Skipping package installation."
fi
cd /app
npm install --no-audit --no-fund --no-optional --omit=optional
npx next build
# Clean up
rm -rf /tmp/clone
echo "Update process completed."
fi
echo "Running the main process"
exec "$@"