stages: - build - deploy build: stage: build image: composer:2 script: - apk add --no-cache nodejs npm - npm install - if [ "$CI_COMMIT_REF_NAME" = "preprod" ]; then npm run build:preprod; else npm run build; fi - cd dist - composer install --no-dev --optimize-autoloader --ignore-platform-req=ext-gd - cd .. artifacts: paths: - dist/ cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ deploy_prod: stage: deploy image: node:latest needs: ['build'] only: - main before_script: - apt-get update -qq && apt-get install -y rsync sshpass script: - cd dist - if [ ! -d "vendor" ]; then echo "Error: vendor/ not found"; exit 1; fi - sshpass -p "$PASSWORD" rsync -az --delete -O --exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/' -e "ssh -p 2244 -o StrictHostKeyChecking=no" site/ $USERNAME@$HOST:$PROD_PATH/site/ - sshpass -p "$PASSWORD" rsync -az --delete -O -e "ssh -p 2244 -o StrictHostKeyChecking=no" vendor/ $USERNAME@$HOST:$PROD_PATH/vendor/ - sshpass -p "$PASSWORD" rsync -az --delete -O -e "ssh -p 2244 -o StrictHostKeyChecking=no" kirby/ $USERNAME@$HOST:$PROD_PATH/kirby/ - sshpass -p "$PASSWORD" rsync -az --delete -O --exclude 'tiles/' -e "ssh -p 2244 -o StrictHostKeyChecking=no" assets/ $USERNAME@$HOST:$PROD_PATH/assets/ deploy_preprod: stage: deploy image: node:latest needs: ['build'] only: - preprod before_script: - apt-get update -qq && apt-get install -y rsync sshpass script: - cd dist - if [ ! -d "vendor" ]; then echo "Error: vendor/ not found"; exit 1; fi - sshpass -p "$PASSWORD" rsync -az --delete -O --exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/' -e "ssh -p 2244 -o StrictHostKeyChecking=no" site/ $USERNAME@$HOST:$PREPROD_PATH/site/ - sshpass -p "$PASSWORD" rsync -az --delete -O -e "ssh -p 2244 -o StrictHostKeyChecking=no" vendor/ $USERNAME@$HOST:$PREPROD_PATH/vendor/ - sshpass -p "$PASSWORD" rsync -az --delete -O -e "ssh -p 2244 -o StrictHostKeyChecking=no" kirby/ $USERNAME@$HOST:$PREPROD_PATH/kirby/ - sshpass -p "$PASSWORD" rsync -az --delete -O --exclude 'tiles/' -e "ssh -p 2244 -o StrictHostKeyChecking=no" assets/ $USERNAME@$HOST:$PREPROD_PATH/assets/