...
 
Commits (3)
stages:
- preprod
preprod:deploy:
variables:
- PREPROD: "True"
- WPCLI_PATH: "/usr/local/bin/wp-cli.phar"
- WP_PATH: "/srv/wordpress/"
stage: preprod
tags: [preprod]
only: preprod
script:
- ./scripts/install.sh site.env
......@@ -7,5 +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
ce qui est lié à Wordpress.
Il faut ensuite modifier le fichier Manifest.xml à laracine du nouveau projet afin
que le tout soit installé automagiquement.
\ No newline at end of file
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
Wordpress de manière générale), en particulier la page sur le
[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.
/*
* functions.php
* Licence GNU General Public Licence v3 or more
* https://www.gnu.org/licenses/gpl.html
*
* Ce fichier sert à regrouper toutes les fonctions spécifiques au thème
* troisquatorze.
*/
/*
* index.php
* Licence GNU General Public Licence v3 or more
* https://www.gnu.org/licenses/gpl.html
*
* C'est le seul fichier obligatoire pour la création d'un thème.
* Pour d'autres fichiers / template, se référer à la documentation
* officielle du codex wordpress: https://codex.wordpress.org/Theme_Development
*
* Penser notamment à valider la checklist des templates
*/
#!/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"
/*
Theme Name: Trois Quatorze
Them URI: https://git.laquadrature.net/la-quadrature-du-net/grange/troisquatorze
Author: La Quadrature du Net
Author URI: https://git.laquadrature.net/la-quadrature-du-net/grange/
Description: Le thème trois quatorze sert de squelette aux thèmes développés par LQDN
Il n'a pas pour but d'être installé, mais cloné.
Version: 0.1
Licence: GNU Genera Public Licence v3 or later
Licence URI: https://www.gnu.org/licenses/gpl.html
Tags: dev
Text Domain: troisquatorze
*/