when: branch: main event: push steps: install: image: node:20 commands: - npm ci lint: image: node:20 commands: - npm run lint depends_on: [install] build: image: node:20 commands: - npm run build depends_on: [install] deploy: image: alpine:latest commands: - apk add --no-cache openssh rsync - mkdir -p /ssh - echo "$$*** > /ssh/deploy_key - chmod 600 /ssh/deploy_key - ssh-keyscan -H 192.168.1.88 >> /etc/ssh/ssh_known_hosts 2>/dev/null - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete client/dist/ root@192.168.1.88:/var/www/ secrets: [deploy_key] depends_on: [lint, build]