designtopack/.gitlab-ci.yml
2025-09-09 17:28:45 +02:00

48 lines
1.2 KiB
YAML

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
- |
rsync_deploy() {
local src=$1
local dst=$2
local exclude=$3
cmd="sshpass -p \"$PASSWORD\" rsync -az --delete -O"
[[ -n $exclude ]] && cmd="$cmd $exclude"
cmd="$cmd -e 'ssh -p 2244 -o StrictHostKeyChecking=no' $src $USERNAME@$HOST:$dst"
echo "$cmd"
eval $cmd
}
rsync_deploy site/ "$PROD_PATH/site/" "--exclude 'accounts/' --exclude 'cache/' --exclude 'sessions/'"
rsync_deploy vendor/ "$PROD_PATH/vendor/"
rsync_deploy kirby/ "$PROD_PATH/kirby/"
rsync_deploy assets/ "$PROD_PATH/assets/" "--exclude 'tiles/'"