stages: - build - deploy variables: COMPOSER_ALLOW_SUPERUSER: '1' build: stage: build image: composer:2 script: - composer install --no-dev --optimize-autoloader - apk add --no-cache nodejs npm - npm install - npm run build artifacts: paths: - dist/ - vendor/ - composer.lock - composer.json deploy: stage: deploy image: node:latest only: - main before_script: - apt-get update -qq && apt-get install -y rsync sshpass script: - cd dist - | sshpass -p "$PASSWORD" rsync -avz --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 -avz --delete -O \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ ../vendor/ $USERNAME@$HOST:$PROD_PATH/vendor/ sshpass -p "$PASSWORD" rsync -avz --delete -O \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ kirby/ $USERNAME@$HOST:$PROD_PATH/kirby/ sshpass -p "$PASSWORD" rsync -avz --delete -O \ --exclude 'tiles/' \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ assets/ $USERNAME@$HOST:$PROD_PATH/assets/ dependencies: - build