--- image: ruby:2.6.6 stages: - test - staging - production variables: JEKYLL_ENV: production LC_ALL: C.UTF-8 cache: key: gems paths: - vendor before_script: - 'which rsync || ( apt-get update -qq && apt-get install rsync -yqq )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - ssh-keyscan web.cotech.uk > ~/.ssh/known_hosts - ssh-keyscan 81.95.52.59 >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - bundle install --path vendor test: stage: test script: - bundle exec jekyll build -d test artifacts: paths: - test except: - master deploy:dev: stage: staging script: - bundle exec jekyll build -d public - rsync -aqz --delete-after public/ cotech@web.cotech.uk:sites/dev/ artifacts: paths: - public environment: name: dev url: https://dev.coops.tech only: - master deploy:production: stage: production script: - bundle exec jekyll build -d public - rsync -aqz --delete-after public/ cotech@web.cotech.uk:sites/default/ artifacts: paths: - public environment: name: production url: https://www.coops.tech only: - master when: manual after_script: - rm -rf /root/.ssh/ ...