when: - event: [push, pull_request] steps: - name: install image: node:20-alpine commands: - npm ci - name: lint image: node:20-alpine commands: - npm run lint - name: build image: node:20-alpine commands: - npm run build - name: deploy image: alpine:3.18 commands: - apk add --no-cache lftp - lftp -u "$FTP_USERNAME","$FTP_PASSWORD" -e "set ssl:verify-certificate no; set ftp:ssl-allow yes; set ftp:ssl-force true; set ftp:ssl-protect-data true; set ftp:passive-mode true; mirror -R dist/ ./; quit" $FTP_HOST secrets: [ ftp_username, ftp_password, ftp_host ]