Files
alrahma_web_client/.gitlab-ci.yml
T
2026-06-12 01:10:24 -04:00

63 lines
1.4 KiB
YAML

stages:
- build
- deploy
variables:
CACHE_KEY: "node-modules-${CI_COMMIT_REF_SLUG}"
BUILD_DIR: "dist"
cache:
key: $CACHE_KEY_ALRAHMA
paths:
- node_modules/
policy: pull-push
# Build stage
build:
stage: build
image: node:20-alpine
script:
- echo "Installing dependencies..."
- npm ci
- echo "Building project..."
- npm run build
- echo "Build completed!"
artifacts:
paths:
- $BUILD_DIR_ALRAHMA/
expire_in: 1 hour
only:
- develop
# Deploy to shared hosting via FTP
deploy:
stage: deploy
image: alpine:latest
before_script:
- apk add --no-cache openssh-client sshpass rsync
script:
- echo "Starting deployment to $SSH_HOST_ALRAHMA on port $SSH_PORT_ALRAHMA..."
- |
if sshpass -p "$SSH_PASSWORD_ALRAHMA" rsync -avz --delete \
-e "ssh -p $SSH_PORT_ALRAHMA -o StrictHostKeyChecking=no" \
--exclude='.htaccess' \
--exclude='.env' \
--exclude='.git' \
$BUILD_DIR_ALRAHMA/ $SSH_USER_ALRAHMA@$SSH_HOST_ALRAHMA:$SSH_TARGET_DIR_ALRAHMA/; then
echo "✅ Deployment successful!"
echo "🌐 Website: $PRODUCTION_URL_ALRAHMA"
else
echo "❌ Deployment failed!"
exit 1
fi
environment:
name: production
url: $PRODUCTION_URL_ALRAHMA
only:
- develop
when: manual
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure