stages: - build - deploy build: stage: build image: node:20-alpine script: - npm ci - npm run build artifacts: paths: - dist/ expire_in: 1 hour only: - main deploy: stage: deploy image: alpine:latest before_script: - apk add --no-cache rsync openssh-client - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh && chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts script: - rsync -avz --delete dist/ $DEPLOY_USER@$DEPLOY_HOST:/var/www/domains/gateway-gamers.net/kingmaker/ only: - main environment: name: production url: https://kingmaker.gateway-gamers.net