image: ubuntu:xenial cache: paths: - output/ # le répertoire où se trouve le HTML statique généré build: stage: build script: # dépendances pelican thèmes - apt-get update - 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 - apt-get install -y --force-yes rsync - apt-get install -y --force-yes krb5-user krb5-config # génération du HTML statique dans le répertoire output - pelican content # dépendance pour l'authentification kerberos - echo -e "krb5-config krb5-config/default_realm string LOCAL.ISIMA.FR" | debconf-set-selections - apt-get install -y --force-yes krb5-user krb5-config # récupération du KEYTAB en hexa # récupération du KEYTAB en hexa - echo "$KEYTAB" > my.keytab.hex # conversion du KEYTAB en hexa en binaire - sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' my.keytab.hex | xargs printf > my.keytab # génération du ticket kerberos - kinit -k -t my.keytab vimazeno@LOCAL.ISIMA.FR # préparation du répertoire servi par apache - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "mkdir -p ~/public_html/" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'Options +FollowSymLinks' > ~/public_html/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteEngine on' >> ~/public_html/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteCond %{HTTP_HOST} ^perso.isima.fr$' >> ~/public_html/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo 'RewriteRule (.*) https://perso.limos.fr%{REQUEST_URI} [R=301,L]' >> ~/public_html/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "mkdir -p ~/public_html/_" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '<FilesMatch "\.phar">' > ~/public_html/_/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo ' php_flag engine off' >> ~/public_html/_/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo ' ForceType application/octet-stream' >> ~/public_html/_/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo ' Header set Content-Disposition attachment' >> ~/public_html/_/.htaccess" - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "echo '</FilesMatch>' >> ~/public_html/_/.htaccess" # rsync du HTML statique généré - rsync -az --exclude '_' -e "ssh -o StrictHostKeyChecking=no -K" output/ vimazeno@perso.local.isima.fr:~/public_html/ - ssh -o StrictHostKeyChecking=no -K vimazeno@perso.local.isima.fr "mkdir -p ~/public_html/node_modules" - rsync -az -e "ssh -o StrictHostKeyChecking=no -K" content/node_modules/ vimazeno@perso.local.isima.fr:~/public_html/node_modules # le déploiement se fera uniquement lorsque je clique sur le "play" de la CI via l'interface gitlab when: manual