stages: - build - deploy Build: image: node:alpine stage: build before_script: - yarn config set cache-folder .yarn - yarn install script: - yarn run build cache: paths: - node_modules/ - .yarn artifacts: paths: - _site/ expire_in: 1 week Deploy: image: alpine stage: deploy before_script: - apk add openssh-client findutils - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' script: - cd _site - find . -depth -type "f" -printf "%P\n" | grep -v -e content -e .sftp | awk '{print "rm "$1}' > .sftp_rm - find . -depth -type "d" -printf "%P\n" | grep -v -e content -e .sftp | awk '{print "rmdir "$1}' > .sftp_rmdir - ls | grep -v -e content -e .sftp | awk '{print "put -R "$1}' > .sftp_put - cat .sftp_rm .sftp_rmdir .sftp_put | sftp -v fainsil@ftp.perso.bde.inp-toulouse.fr:www_public