image: ubuntu:xenial

cache:
  paths:
    - output/ # Node modules and dependencies

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

build:
  stage: build
  script:
    - apt-get install -y --force-yes build-essential python-dev python-pip git nodejs nodejs-legacy npm
    - pip install --upgrade pip==9.0.3
    - pip install -r requirements.txt
    - cd content && npm install && cd ..
    - sed -i "s/RELATIVE_URLS = True/RELATIVE_URLS = False/" pelicanconf.py
    - apt-get install -y --force-yes locales
    - locale-gen fr_FR
    - locale-gen fr_FR.UTF-8
    - update-locale LANG=fr_FR.UTF-8
    - . /etc/default/locale
    - pelican content
    # krb5 auth
    - apt-get install -y --force-yes krb5-user krb5-config
    - echo "#!/bin/sh" > hex2bin
    - echo "sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' \"$1\" | xargs printf" > hex2bin
    - echo "#!/bin/sh" > bin2hex
    - echo "hexdump -v -e '1/1 \"%02x\"' \"$1\"" > bin2hex
    - echo "$KEYTAB" > my.keytab.hex
    - ./hex2bin my.keytab.hex > my.keytab
    - kinit -k -t my.keytab vimazeno@LOCAL.ISIMA.FR
    - ssh -K vimazeno@perso.isima.fr "mkdir -p ~/public_html/"

  artifacts:
    untracked: true

deploy:
  stage: deploy
  dependencies:
    - build
  script:
    - apt-get install -y --force-yes rsync
    - rsync -az --exclude '_' -e ssh output/ vimazeno@perso.isima.fr:~/public_html/
  when: manual