Commit ece4c6f5 authored by Okhin's avatar Okhin

Let's get a shot at the CI

parent 7a196c3a
stages:
- preprod
preprod:deploy:
variables:
- PREPROD: "True"
stage: preprod
tags: [preprod]
only: preprod
script:
- ./scripts/install.sh site.env
...@@ -7,15 +7,27 @@ Une fois forké depuis l'interface gitlab, il faut penser à modifier le nouveau ...@@ -7,15 +7,27 @@ Une fois forké depuis l'interface gitlab, il faut penser à modifier le nouveau
en changer le nom et le transférer au groupe /la-quadrature-du-net/grange/ avec tout en changer le nom et le transférer au groupe /la-quadrature-du-net/grange/ avec tout
ce qui est lié à Wordpress. ce qui est lié à Wordpress.
Il faut ensuite modifier le fichier style.css à la racine du nouveau
projet afin que le tout soit installé automagiquement. Penser notamment
à changerlenuméro de version, et les chaines contenant le nom du thèmes,
ettre à jour la description et ajouter à la racine un fichier
screenshot.png représentant le thème (idéalement: en 1200 × 900 px).
Ne pas hésiter à se référer au [Codex](https://codex.wordpress.org/) pour Ne pas hésiter à se référer au [Codex](https://codex.wordpress.org/) pour
toute info sur le développement de thèmes (ou le fonctionnement de toute info sur le développement de thèmes (ou le fonctionnement de
Wordpress de manière générale), en particulier la page sur le Wordpress de manière générale), en particulier la page sur le
[développement de thèmes](https://codex.wordpress.org/Theme_Development) [développement de thèmes](https://codex.wordpress.org/Theme_Development)
Le répertoire scripts/ contient quelques utilitaires nécessaire à la mise
en ligne du site ou à réaliser quelques opérations de maintenance. Il
s'agit essentiellement de scripts bash.
# Installation d'un nouveau site
Pour tester le thème, le plus simple est de créer un nouveau site sur la
grange. Pour se faciliter la vie, l'URL de test sera [https://<nom du
theme>.unegrange.dev.lqdn.fr]().
Un fichier site.yml contenant les variables nécessaire au fonctionnement
du site — incluant notamment la liste des plugins — doit être rempli. Les
variables nécessaires et leur significations sont détaillées ci-dessous.
Attention, lorsque ce fichier est mis à jour sur la branche preprod du
gitlab, un déploiement en test aura lieu, ainsi que le lancement de tests.
Une mise à jour dans la branche master amènera à un déploiement en
production.
#!/bin/bash -x
#
# Installation via wpcli d'un site wordpress. Ce script a besoin d'un fichier site.env
# passé en premier argument pour définir certaines variables nécessaire au fonctionnement du site.
#
# Si une variable $DEBUG existe dans l'environnement, ce script considère que l'on est
# en preprod.
#
[[ -z ${WPCLI_PATH+x} ]] && echo "\$WPCLI_PATH is undefined." && exit 1
[[ ! -f ${WPCLI_PATH} ]] && echo "\$WPCLI_PATH does not exist ($WPCLI_PATH)" && exit 1
[[ -z ${WP_PATH+x} ]] && echo "\$WP_PATH is undefined." && exit 1
[[ ! -d ${WP_PATH} ]] && echo "\$WP_PATH is not a directory or does not exist ($WP_PATH)" && exit 1
[[ -z ${1+x} ]] && echo "You need to pass a site.yml file as first and only argument of this script" && exit 1
[[ ! -f $1 ]] && echo "$1: does not exist"
WPCLI="php ${WPCLI_PATH} --path=${WP_PATH}"
source $1
# Si on est en PREPROD, utilisons une URL plus simple.
[[ -z ${PREPROD+x} ]] && URL="https://${THEME}.grange.dev.lqdn.fr"
# Au cas où, on vérifie que wordpress est bien installé.
$WPCLI core is-installed || echo "Sorry, wordpress isn't installed in $WP_PATH." || exit 1
# Créons un site
SITE_ID=$WPCLI site create --slug=${THEME} --title=${TITLE} --description=${DESCRIPTION} ${PREPROD:+"--private=true"} --porcelain || echo "Oops, something bas happened." || exit 1
# Créons un thème. On crée un .zip à partir de ce qu'il y a dans le répertoire parent
# en n'excluant certains fichiers (le répertoire scripts notamment, et les fichiers commençant par .git)
zip ${THEME}.zip -r * -x .git\* -x scripts
$WPCLI theme install ./${THEME}.zip ${PREPROD:+"--force"} --activate --url=${URL} || echo "Oops install of ${THEME}.zip went bad" || exit 1
# Activation des plugins
for $PLUGIN in $PLUGINS
do
$WPCLI plugin activate $PLUGIN --url=${URL} || echo "Can't activate plugin $PLUGIN for site $TITLE"
done
#!/bin/bash
# Ce fichier définit les paramètres nécessaires à la mise en place du nouveau site
# Il s'agit d'un script bash, le formalisme est donc le suivant
# VAR="valeur"
# Pas d'espace entre le nom de la variable et la valeur.
#
# Pour les champs long, on utilise un here document de cette façon
# DESCRIPTION=<<-HERE
# Ceci est un texte
# sur plusieurs lignes
# HERE
# et le contenu de ce qu'il y a entre les deux chaînes HERE sera alloué à la variable.
# Le nom du theme utilisé
THEME="troisquatorze"
# Le titre su dite
TITLE="Trois Quatorze"
# Une rapide description
DESCRIPTION=<<-DESC
"Site Trois Quatorze utilisé comme template pour les
plugins de La Quadrature. A cloner pour créer de nouveaux
sites et thèmes."
DESC
# L'URL à laquelle on peut joindre le site. Non utilisé en preprod (l'URL est alors $THEME.grange.dev.lqdn.fr)
URL="https://troisquatorze.test"
# Qui sera admin du site
ADMIN_EMAIL="okhin@laquadrature.fr"
# Une liste de plugin, séparés par des espaces. Il faut les avoir installés précédemment et activés
# sur le réseau, demandez à votre gentil admin préféré (ou faites le vous même si vous êtes admin).
PLUGINS="hello"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment