---
image: ruby:3.4.4

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 www.cotech.coop > ~/.ssh/known_hosts
  - ssh-keyscan 81.95.52.13 >> ~/.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@www.cotech.coop:sites/dev/
  artifacts:
    paths:
      - public
  environment:
    name: dev
    url: https://dev.cotech.coop
  only:
    - master

deploy:production:
  stage: production
  script:
    - bundle exec jekyll build -d public
    - rsync -aqz --delete-after public/ cotech@www.cotech.coop:sites/default/
  artifacts:
    paths:
      - public
  environment:
    name: production
    url: https://www.cotech.coop
  only:
    - master
  when: manual

after_script:
  - rm -rf /root/.ssh/
...
