40 lines
859 B
Bash
40 lines
859 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
FRONTEND_DIR=/app
|
|
APP_DIR=/var/www/app
|
|
PUBLIC_DIR="$APP_DIR/public"
|
|
GIT_URL="https://oauth2:${GIT_TOKEN}@${FRONTEND_GIT_REPO}"
|
|
|
|
MAX_WAIT=300
|
|
WAITED=0
|
|
while [ ! -f "$APP_DIR/composer.json" ] || [ ! -d "$APP_DIR/vendor" ] || [ ! -f "$APP_DIR/public/index.php" ]; do
|
|
if [ $WAITED -ge $MAX_WAIT ]; then
|
|
exit 1
|
|
fi
|
|
sleep 3
|
|
WAITED=$((WAITED + 3))
|
|
done
|
|
|
|
|
|
if [ ! -d "$FRONTEND_DIR/.git" ]; then
|
|
git clone -b "${FRONTEND_GIT_BRANCH:-main}" "$GIT_URL" "$FRONTEND_DIR"
|
|
else
|
|
cd "$FRONTEND_DIR"
|
|
git fetch origin
|
|
git reset --hard origin/"${FRONTEND_GIT_BRANCH:-main}"
|
|
fi
|
|
|
|
cp "$APP_DIR"/public/index.php "$FRONTEND_DIR"/index.php
|
|
cd "$FRONTEND_DIR"
|
|
|
|
cp /tmp/app.env .env
|
|
|
|
npm ci --prefer-offline --no-audit
|
|
|
|
npm run build
|
|
|
|
find "$PUBLIC_DIR" -mindepth 1 ! -name 'index.php' ! -name '.htaccess' -delete
|
|
cp -r dist/* "$PUBLIC_DIR/"
|
|
|
|
exit 0 |