stages: - build - deploy variables: COMPOSER_ALLOW_SUPERUSER: '1' build: stage: build image: composer:2 script: - apk add --no-cache nodejs npm - npm install - npm run build - 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_template: &deploy_template stage: deploy image: node:latest 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:$TARGET_PATH/site/ sshpass -p "$PASSWORD" rsync -avz --delete -O \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ vendor/ $USERNAME@$HOST:$TARGET_PATH/vendor/ sshpass -p "$PASSWORD" rsync -avz --delete -O \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ kirby/ $USERNAME@$HOST:$TARGET_PATH/kirby/ sshpass -p "$PASSWORD" rsync -avz --delete -O \ --exclude 'tiles/' \ -e "ssh -p 2244 -o StrictHostKeyChecking=no" \ assets/ $USERNAME@$HOST:$TARGET_PATH/assets/ dependencies: - build deploy_prod: <<: *deploy_template only: - main variables: TARGET_PATH: $PROD_PATH deploy_preprod: <<: *deploy_template only: - preprod variables: TARGET_PATH: $PREPROD_PATH