stages: - build - deploy build site: image: node:lts stage: build script: - npm ci --cache .npm --prefer-offline - npm run build cache: key: ${CI_COMMIT_REF_SLUG} paths: - .npm artifacts: paths: - dist deploy site: image: instrumentisto/rsync-ssh stage: deploy only: refs: - master script: - mkdir ~/.ssh - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - rsync -vr -e "ssh -p ${SSH_PORT}" dist/ "${DEPLOY_DEST}"